我已经扩展了Object.prototype充满了陷阱。 在扩展其他标准Javascript原型时有没有:String.prototype,Array.prototype,Function.prototype?
提前致谢。
答案 0 :(得分:0)
如果未来的浏览器版本实现
Array.prototype.remove
(或者是因为升级到EcmaScript标准,或是通过 他们自己的意志,他们的实施将被我们超越 自定义的,不仅效率低(我们无法操纵 浏览器引擎内部的方法优化服务)但是 更重要的是,他们可能会有不同的非标准结果。使用对象迭代周期扩展本机混乱。这个论点是这样的:因为in循环将访问所有可枚举的 对象的原型链中的属性,自定义本机属性 将意外地包含在这样的迭代中。
- 醇>
Object.prototype的后代(即原型未显式为null的每个对象)将失去对扩展属性的访问权限 他们碰巧定义了一个同名的财产。
http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/
答案 1 :(得分:-1)
非常有用
Extending Natives in Javascript
[编辑] 这不仅表明你可以,而且如何避免陷阱。 :)
扩展本地人一直都好吗?
我已经描述了不增加原生原型的一些原因;你可能知道其他人。您需要决定这些问题是否会由您计划的扩展程序解决,以及扩展程序是否会为您的代码库增加功能和清晰度。