我正在开发支持 AJAX 的 asp.net 应用程序。我刚刚向 Array.prototype 添加了一些方法,例如
Array.prototype.doSomething = function(){
...
}
该解决方案对我有用,可以以“漂亮”的方式重用代码。
但是当我测试它与整个页面一起工作时,我遇到了问题……我们有一些自定义的 ajax 扩展程序,它们开始表现出意料之外的行为:一些控件在其内容或值周围显示“未定义”。
可能是什么原因造成的?我是否缺少有关修改标准对象原型的内容?
注意:我很确定错误是在我修改 Array 的原型时开始的。它应该只与 IE 兼容。
原文由 mati 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然与其他代码冲突的可能性仍然存在风险,但如果您想使用现代版本的 JavaScript 执行此操作,则可以使用
Object.defineProperty
方法,例如