我在我的开源项目中使用jQuery 1.5,以下行也出现在我自己的Javascript代码中:
/**
* Object.isEmpty()
*
* @returns {Boolean}
*/
Object.prototype.isEmpty = function ()
{
/**
* @deprecated Since Javascript 1.8.5
* @see https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object
*/
if ( this.__count__ !== undefined )
{
return this.__count__ === 0 ? true : false;
}
/* Less-aesthetic method,if above method fails */
for ( var property in this )
{
if ( this.hasOwnProperty(property) )
{
return false;
}
}
return true;
};
它只是扩展了Object.prototype,为它添加了isEmpty()方法[检查对象是否为空).由于这个添加,我的Firebug控制台中出现“c.replace is not function”错误;我在网上的研究引导我进入jQuery bug tracker message,在那里我“学会”扩展Object.prototype不仅打破了jQuery,而且还是糟糕的编码实践.我的问题是,为什么?
最佳答案
原文链接:https://www.f2er.com/jquery/428896.html