【发布时间】:2025-12-09 03:30:02
【问题描述】:
我在我的页面中添加了一个简单的.js 文件,该文件在Object 和Array 原型中添加了一些非常普通的常见任务类型的函数。
通过反复试验,我发现在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 是未定义的。
虽然很明显有些东西我只是没有用原型设计来解决问题,但我很难弄清楚它是什么。
明确地说,我不是在寻找解决方法,我已经解决了......我正在寻找的是为什么?的答案。为什么向Object.prototype 添加函数会破坏这段代码?
【问题讨论】:
-
如果您切换到完整的 jquery 文件(未缩小),您可能会遇到更有意义的错误。这样您就可以更清楚地看到哪些代码存在问题。
-
@CrescentFresh 的链接已过时。更新:bugs.jquery.com/ticket/2721
标签: javascript jquery prototype prototyping