扩展javascript标准类型的陷阱

时间:2012-08-16 14:37:01

标签: javascript

我已经扩展了Object.prototype充满了陷阱。 在扩展其他标准Javascript原型时有没有:String.prototype,Array.prototype,Function.prototype?

提前致谢。

[编辑]相关:What are pitfalls of extending Object.prototype?

2 个答案:

答案 0 :(得分:0)

  
      
  1. 如果未来的浏览器版本实现Array.prototype.remove(或者是因为升级到EcmaScript标准,或是通过   他们自己的意志,他们的实施将被我们超越   自定义的,不仅效率低(我们无法操纵   浏览器引擎内部的方法优化服务)但是   更重要的是,他们可能会有不同的非标准结果。

  2.   
  3. 使用对象迭代周期扩展本机混乱。这个论点是这样的:因为in循环将访问所有可枚举的   对象的原型链中的属性,自定义本机属性   将意外地包含在这样的迭代中。

  4.   
  5. Object.prototype的后代(即原型未显式为null的每个对象)将失去对扩展属性的访问权限   他们碰巧定义了一个同名的财产。

  6.   

http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/

答案 1 :(得分:-1)

非常有用

Extending Natives in Javascript

[编辑] 这不仅表明你可以,而且如何避免陷阱。 :)

扩展本地人一直都好吗?

我已经描述了不增加原生原型的一些原因;你可能知道其他人。您需要决定这些问题是否会由您计划的扩展程序解决,以及扩展程序是否会为您的代码库增加功能和清晰度。