这是一个好的克隆功能吗?

时间:2012-02-04 03:00:23

标签: javascript

这是一个用于递归克隆对象的克隆函数吗?

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);
}

另外,我发现这不适用于数组。我如何克隆数组?

1 个答案:

答案 0 :(得分:1)

它当然不能完美地克隆对象 - 克隆将没有原始的原型,并且它们将具有不同的构造函数,并且如果原始具有任何不可迭代的属性,那么这将不会复制它们 - 但是你问它是否“没问题”,答案可能就是“肯定”:如果它做的就是你需要做的一切,那么它绝对没问题。

至于克隆数组 - 您可以检查inObj.constructor == Array