Я использую код ниже, и он работает хорошо, но когда я пытаюсь использовать JQuery одновременно, я получаю следующую ошибку, я читал некоторые сообщения, и я думаю, что проблема в том, что нет возможности расширить Object.prototype без проверки hasOwnProperty(), но я не знаю, как это решить, может кто-нибудь дать мне руку?
Код:
Object.prototype.clone = function () {
var i, newObj = (this instanceof Array) ? [] : {};
for (i in this) {
if (i === 'clone') {
continue;
}
if (this[i] && typeof this[i] === "object") {
newObj[i] = this[i].clone();
} else {
newObj[i] = this[i];
}
}
return newObj;
};
Ошибка:
Uncaught TypeError: Object function () {
var i, newObj = (this instanceof Array) ? [] : {};
for (i in this) {
if (i === 'clone') {
continue;
}
if (this[i] && typeof this[i] === "object") {
newObj[i] = this[i].clone();
} else {
newObj[i] = this[i];
}
}
return newObj;
} has no method 'exec'
Добавьте к вашему объекту clone следующую функцию:
Object.prototype.clone.exec=function() {
//your codes
};
Object.prototype
. Вместо этого поместите его как метод вObject
чтобы он не был унаследован, и передайте объект, который нужно клонировать, в качестве первого аргумента.Object.clone(foo)