Пересматривая расширение собственных прототипов после ECMAScript 5
Недавно, учитывая изменения в определении свойств в ECMAScript 5, я вновь обратился к вопросу о том, можем ли мы безопасно расширять нативные прототипы JavaScript. По правде говоря, все время я расширял прототипы, такие как Array и Function, но я избегал делать это с Object по очевидным причинам. В модульном тестировании с Jasmine, добавив спецификации Object.prototype к спецификациям для моей личной инфраструктуры, расширив Object.prototype неперечисляемымfunctions оказался безопасным. Свойства данных, такие как «тип» свойство, однако, с геттерами / сеттерами, которые делают любую необычную обработку, имело непредвиденные последствия. Все еще существует вероятность конфликтов с другими библиотеками - хотя в моей работе это вряд ли когда-либо возникнет. Тем не менее, пока функции не перечисляются, похоже, что расширение Object.prototype может быть безопасным.
Как вы думаете? Безопасно ли расширять Object.prototype сейчас? Пожалуйста, обсудите.