- 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')
zloirock 28.11.2012 15:06 # +4
2. hasOwnProperty, при том желательно отвязанный от объекта.
И вообще, если ломать прототипы других стандартных объектов еще можно при необходимости, ломать прототип Object - ересь.
Stud 28.11.2012 15:12 # 0
Vindicar 28.11.2012 15:18 # +3
Это имхо, конечно, JS не совсем мой профиль.
Stud 28.11.2012 15:22 # 0
zloirock 28.11.2012 15:26 # 0
zloirock 28.11.2012 15:36 # 0
З.Ы. Нода - тоже сторонний фреймворк и в ней тоже используется for(... in ...).
Stud 28.11.2012 15:40 # −1
HottDogg 28.11.2012 20:28 # −1
GoblinAlchemist 29.11.2012 11:40 # +2
torbasow 06.12.2012 15:18 # 0