Я использую 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 () к нему [который проверяет, пуст объект или нет). Из-за этого добавления я получаю ошибку «c.replace не функция» в моей консоли Firebug; и мои исследования в Интернете привели меня к сообщению об ошибках jQuery , где я «узнал», что расширение Object.prototype не только нарушает jQuery, но и является плохой практикой кодирования. У меня вопрос: почему?