美文网首页Javascript
JavaScript 深拷贝

JavaScript 深拷贝

作者: 知止至得 | 来源:发表于2018-07-25 18:20 被阅读3次

    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 深拷贝

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