gpt4 book ai didi

javascript - 在 Javascript 中构建对象原型(prototype)会破坏 jQuery?

转载 作者:行者123 更新时间:2023-12-01 05:25:33 25 4
gpt4 key购买 nike

我在我的页面中添加了一个简单的 .js 文件,其中添加了一些非常普通的常见任务类型的函数到 ObjectArray 原型(prototype)。

通过反复试验,我发现向 Object.prototype 添加任何函数,无论其名称或作用如何,都会导致 jQuery 中的 Javascript 错误:

罪魁祸首?

Object.prototype.foo = function() {
/*do nothing and break jQuery*/
};

我在 attr:function { } 声明中收到 jquery-1.3.2.js 第 1056 行的错误:

/*Object doesn't support this property or method*/
name = name.replace(/-([a-z])/ig, function(all, letter) {
return letter.toUpperCase();
});

显然 G.replace 未定义。

虽然很明显有些东西我没有用原型(prototype)设计来解决,但我却悲惨地没能弄清楚它是什么。

需要明确的是,我并不是在寻找解决方法,我已经处理了这个问题...我正在寻找的是为什么?的答案。为什么向 Object.prototype 添加函数会破坏这段代码?

最佳答案

如果这只是一个搞乱 for...in 循环的情况,你不能使用 Object.defineProperty 来添加你的 fn 而不使其可枚举吗?

所以:

Object.defineProperty(Object.prototype, "foo", { 
value: function() {
// do stuff
},
enumerable : false
});

似乎对我有用。这仍然会被认为是不好的形式吗?

关于javascript - 在 Javascript 中构建对象原型(prototype)会破坏 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39981101/

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