我为我的页面添加了一个简单的.js
文件,其中有一些漂亮的常见任务类型的功能添加到Object
和Array
原型。JavaScript中的原型对象打破jQuery?
经过反复试验,我已经想通了,添加任何功能Object.prototype
,无论它的名字还是它做什么导致Javascript错误在jQuery的:
的罪魁祸首?
Object.prototype.foo = function() {
/*do nothing and break jQuery*/
};
我得到的jquery-1.3.2.js
线1056,在ATTR错误:函数{}声明:
/*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文件(非缩小),您可能会得到更有意义的错误。这样你就可以更清楚地看到哪些代码有问题。 – 2009-12-01 16:53:27
这是一个已知的bug:http://dev.jquery.com/ticket/2721 – 2009-12-01 17:27:19
@ CrescentFresh的链接已过时。更新:https://bugs.jquery.com/ticket/2721 – WoodrowShigeru 2017-08-19 10:41:02