这是一个用于递归克隆对象的克隆函数吗?
function clone(o)
{
function CloneObject(inObj)
{
for (i in inObj)
{
if(typeof inObj[i] == 'object')
this[i] = clone(inObj[i]);
else
this[i] = inObj[i];
}
}
return new CloneObject(o);
}
另外,我发现这不适用于数组。我如何克隆数组?
答案 0 :(得分:1)
它当然不能完美地克隆对象 - 克隆将没有原始的原型,并且它们将具有不同的构造函数,并且如果原始具有任何不可迭代的属性,那么这将不会复制它们 - 但是你问它是否“没问题”,答案可能就是“肯定”:如果它做的就是你需要做的一切,那么它绝对没问题。
至于克隆数组 - 您可以检查inObj.constructor == Array
。