通过试错,我发现将任何函数添加到Object.prototype中,无论它的名称或功能是什么,都会导致jQuery中出现Javascript错误:
罪魁祸首是什么呢?
Object.prototype.foo = function() {
/*do nothing and break jQuery*/
};
我遇到了一个错误,出现在jquery-1.3.2.js
的第1056行,在attr:function { }声明中:
/*Object doesn't support this property or method*/
name = name.replace(/-([a-z])/ig, function(all, letter) {
return letter.toUpperCase();
});
显然,G.replace未定义。
虽然很明显我在原型方面有些不理解的地方,但我仍然无法搞清楚是什么。
需要澄清的是,我不是在寻找解决方法,我已经处理了... 我要找的是一个答案:为什么?为什么将函数添加到Object.prototype
会破坏这段代码?