最近,鉴于 ECMAScript 5 中定义属性的变化,我重新审视了我们是否可以安全地扩展原生 JavaScript 原型的问题。事实上,一直以来我都扩展了 Array 和 Function 等原型,但出于显而易见的原因,我避免使用 Object。在 Jasmine 的单元测试中,通过将 Object.prototype 规范添加到我自己的个人框架的规范中,使用不可枚举的函数扩展 Object.prototype似乎是安全的。然而,像“类型”属性这样的数据属性,带有执行任何异常处理的 getter/setter 会产生意想不到的后果。仍然有可能与其他库发生冲突——尽管在我的工作中,这几乎没有出现过。尽管如此,只要函数不可枚举,看起来扩展 Object.prototype 是安全的。
你怎么看?现在扩展 Object.prototype 是否安全?请讨论。