0001 - javascript deep copy

支持数组和对象的深拷贝

var deepClone = function(obj) {
    if (typeof (obj) !== 'object') {
        return obj;
    }
    var re = {};
    if (obj.constructor === Array) {
        re = [];
    }
    for ( var i in obj) {
        re[i] = deepClone(obj[i]);
    }
    return re;
}

还有另外一种比较巧妙,但是有限制

var a = {/*...*/}

var str = JSON.stringify(a);

var copy = JSON.parse(str);
当a中出现function,或者不是标准的json数据格式,或者如下的这种形式
var a = {b: a}
时,则行不通了。



你可能感兴趣的:(0001 - javascript deep copy)