gpt4 book ai didi

javascript - 扩展 Object.prototype 的陷阱是什么?

转载 作者:行者123 更新时间:2023-11-29 10:52:02 25 4
gpt4 key购买 nike

<分区>

我想扩展 Object.prototype,通过 UI 框架基本上支持 JSON 数据和 html 元素中的通知。

Object.prototype.setValue = function(key,value){
// this simply sets value as this[key] = value
// and raises an event
Binder.setValue(this,key,value);
};
Object.prototype.getValue = function(key){
return Binder.getValue(this,key);
};

但是,基于这个问题,Extending Object.prototype JavaScript很少有人说我们应该避免扩展 Object.prototype,任何其他类型都可以。

如果我不这样做,那么我的代码就会变大,例如

window.myModel.setValue("currentStatus","empty");

必须这样写,

Binder.setValue(window.myModel,"currentStatus","empty");

我想知道如果我使用这些方法会出现什么问题?它会导致 jQuery 出现意外行为吗?我曾见过 jQuery 的 ajax 请求也调用原型(prototype)方法(因为它们引用了用于事件处理的函数)。

这还有什么其他副作用?我知道它失败了 (var x in obj),但大多数情况下我们可以使用 obj.hasOwnProperty,这应该有帮助吧?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com