Я не спрашиваю, нормально ли это:
Object.prototype.method = function(){};
Это считается злом почти всеми, учитывая, что оно портит for(var i in obj)
.
Настоящий вопрос
Игнорирование
- Некомпетентные браузеры (браузеры, которые не поддерживают
Object.defineProperty
)
- Потенциал для столкновения или переопределения свойства
Если у вас есть какой-нибудь невероятно полезный метод, это считается неправильным / неэтичным?
Object.defineProperty(Object.prototype, 'methodOnSteriods',{
value: function(){ /* Makes breakfast, solves world peace, takes out trash */ },
writable: true,
configurable: true,
enumerable: false
});
Если вы считаете, что вышеупомянутое неэтично, зачем им вообще реализовывать эту функцию?