2012-08-16 48 views

回答

-1

真正有用的

Extending Natives in Javascript

[编辑] 这不应该只显示你可以,但如何以避免陷阱做到这一点。 :)

那么扩展本机永远没关系吗?

我已经描述了一些不增加原生原型的原因;你可能知道别人。您需要确定是否每个问题都将通过您的计划扩展来解决,以及扩展是否会为您的代码库增加功能和清晰度。

+0

@Downvoter你为什么downvote? – Zac 2012-08-16 18:20:11

0
  1. 如果未来版本的浏览器实现Array.prototype.remove(或者,也可以通过 自己的意愿,因为在升级到ECMAScript标准),其实施将通过我们的 习俗之一,它不仅将覆盖效率较低(我们不能在方法优化服务中操纵浏览器引擎内部),但更重要的是,它们可能会有不同的非标准结果。

  2. 使用对象迭代周期扩展本地对象。参数如下所示:因为for循环将访问对象原型链中所有枚举的 属性,所以自定义本机属性 将意外地包含在此类迭代中。

  3. 如果 碰巧定义了一个具有相同名称的属性,则Object.prototype的后代(即其原型不是显式为空的每个对象)都将失去对扩展属性的访问权限。

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