美文网首页
JavaScript深克隆

JavaScript深克隆

作者: 椰果粒 | 来源:发表于2019-03-12 14:52 被阅读0次

方法一:

function deepClone(origin, target){
    // 防止没写被拷贝的对象
    var target = target || {},
        toStr = Object.prototype.toString,
        arrStr = "[object Array]";
    for(var i in origin){
        // 不用遍历原型上的属性
        if(origin[i] !== "null" && typeof origin[i] == "object"){
            // 不是原始类型
            if(typeof origin[i] == "object"){
                // 如果是数组
                if(toStr.call(origin[i]) == arrStr){
                    target[i] = [];
                }else{  // 否则是对象
                    target[i] = {};
                }
                // 调用自身
                deepClone(origin[i],target[i])
            }else{  // 原始类型(除了null)
                target[i] = origin[i];
            }
        }
    }
    return target;
}

方法二:

var obj2 = JSON.parse(JSON.stringify(obj));

相关文章

网友评论

      本文标题:JavaScript深克隆

      本文链接:https://www.haomeiwen.com/subject/ssjrmftx.html