我读的地方,使用prototype扩展原生对象(String,Number,Array等)是个坏主意.这是真的?为什么或者为什么不?
最近,鉴于对ECMAScript 5中定义属性的更改,我重新讨论了是否可以安全地扩展本机JavaScript原型的问题.事实上,我一直在扩展像Array和Function这样的原型,但出于显而易见的原因,我避免使用Object.在使用Jasmine的单元测试中,通过将Object.prototype规范添加到我自己的个人框架的规范中,使用非可枚举函数扩展Object.prototype 似乎是安全的.但是,像"type"属性这样的数据属性,使用任何异常处理的getter/setter都会产生意想不到的后果.仍然存在与其他图书馆发生冲突的可能性 - 尽管在我的工作中,几乎没有出现过.然而,只要函数不可枚举,看起来扩展Object.prototype就可以是安全的.
你怎么看?现在扩展Object.prototype是否安全?请讨论.