扩展 JavaScript 标准类型陷阱

Extending javascript standard type pitfalls

本文关键字:陷阱 类型 标准 JavaScript 扩展      更新时间:2023-09-26

我已经知道Object.prototype的扩展充满了陷阱。扩展其他标准Javascript原型时是否有任何内容:String.prototype,Array.prototype,Function.prototype?

提前谢谢。

[编辑] 相关:扩展 Object.prototype 的陷阱是什么?

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

  2. 扩展本机会扰乱对象迭代周期。参数是这样的:因为 for in 循环将访问所有可枚举的 对象原型链中的属性,自定义本机属性 将意外地包含在此类迭代中。

  3. 如果出现以下情况,则 Object.prototype 的后代(即原型未显式为 null 的每个对象)将失去对扩展属性的访问权限 它们碰巧定义了具有相同名称的属性。

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

真的很有帮助

在 JavaScript 中扩展本机

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

那么扩展原住民

可以吗?

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