- 1
- 2
- 3
- 4
- 5
- 6
- 7
Object.prototype.merge = function(objects){
var newObj = this;
for(var key in objects){
key!='merge'?newObj[key] = objects[key]:void(0);
}
return newObj;
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+146
Object.prototype.merge = function(objects){
var newObj = this;
for(var key in objects){
key!='merge'?newObj[key] = objects[key]:void(0);
}
return newObj;
};
Выглядит ужасно, но ничего другого не придумал. Подскажите как правильно?)
P.S. Если убрать проверку "key!='merge'?" то в объекте становится на 1 ключ больше('merge')
2. hasOwnProperty, при том желательно отвязанный от объекта.
И вообще, если ломать прототипы других стандартных объектов еще можно при необходимости, ломать прототип Object - ересь.
Это имхо, конечно, JS не совсем мой профиль.
З.Ы. Нода - тоже сторонний фреймворк и в ней тоже используется for(... in ...).