JavaScript 深拷贝

Method1 JSON

使用 JSON 方法,先将 对象 转换成字符串,再将字符串转换成 JSON形式对象

let a = {count: 1};
let b = JSON.stringify(a);
b = JSON.parse(b);
运行结果

Method2

function copy(source, out){
    var out = out || (Array.isArray(source) ? [] : {});
    for(let key in source){
        if(typeof source[key] === "object"){
            out[key] = Array.isArray(source[key]) ? [] : {};
            copy(source[key],  out[key]);
        }else{
            out[key] = source[key];
        }
    }
    return key;
}

函数中传入两个参数,第一个参数是原始对象,第二个参数是复制的对象,递归遍历对象,如果元素的类型是对象,继续下层递归,如果不是对象直接复制。最后返回。

你可能感兴趣的:(JavaScript 深拷贝)