这是我用来覆盖clone
对象属性以创建对象的新副本的函数,而不仅仅是引用。
Object.prototype.clone = function () {
var 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;
}
我还向window object
.
编辑
实际上我在我的代码中使用了几个库。当我在没有这些库的情况下运行此方法时,它可以正常工作。但是对于这些库,它会给出这个错误。他们可能已经提供了自己的克隆实现。
现在,当我调用此方法时,我得到了Maximum call stack size exceeded
.
有什么帮助吗?谢谢