扩展 JavaScript 标准类型陷阱
Extending javascript standard type pitfalls
我已经知道Object.prototype的扩展充满了陷阱。扩展其他标准Javascript原型时是否有任何内容:String.prototype,Array.prototype,Function.prototype?
提前谢谢。
[编辑] 相关:扩展 Object.prototype 的陷阱是什么?
如果将来的浏览器版本实现了
Array.prototype.remove
(由于升级到 EcmaScript 标准,或通过 他们自己的意志),他们的实施将被我们的 自定义的,不仅效率较低(我们无法操纵 浏览器引擎内部为方法优化服务),但是 更重要的是,他们可能会有不同的、非标准的结果。扩展本机会扰乱对象迭代周期。参数是这样的:因为 for in 循环将访问所有可枚举的 对象原型链中的属性,自定义本机属性 将意外地包含在此类迭代中。
如果出现以下情况,则 Object.prototype 的后代(即原型未显式为 null 的每个对象)将失去对扩展属性的访问权限 它们碰巧定义了具有相同名称的属性。
http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/
真的很有帮助
在 JavaScript 中扩展本机
[编辑]这不仅应该表明您可以,而且应该如何避免陷阱。:)
那么扩展原住民
可以吗?我已经描述了一些不增强原生原型的原因;你可能知道其他原因。您需要确定计划扩展是否将解决这些问题中的每一个,以及扩展是否会增加代码库的功能和清晰度。
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何将具有文本类型值的var放入jQuery函数中
- javascript解释器如何理解变量的数据类型
- 可变大小的JavaScript字符串如何成为基元类型
- AngularJS指令只识别双向绑定类型
- 在<输入类型=“;文件“/>
- 从查询字符串参数推断出正确的数据类型
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 为什么不'我们在javascript中使用函数参数的数据类型
- Javascript 可选类型提示
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- html5视频中的Youtube类型注释
- 扩展 JavaScript 标准类型陷阱