美文网首页
简单的js深拷贝

简单的js深拷贝

作者: 猫久伴你入眠 | 来源:发表于2017-11-07 16:26 被阅读0次

    代码如下

      function deepCopy(o, n) {
        for (var i in n) {
            if (typeof n[i] == 'object') {
                o[i] = n[i].constructor == Array ? [] : {};
                deepCopy(o[i], n[i]);
            } else {
                o[i] = n[i];
            }
        }
        return o;
    }
    

    测试:

    var a = {};
    var b = {
       num: 30,
       arr: [9, 23],
       obj: {
           'year': 2017,
           "lover": "qingjie"
       }
    };
    deepCopy(a, b);
    
    a.arr.push(3);
    console.log(a);
    /*
    { 
     num: 30,
     arr: [ 9, 23 ,3],
     obj: { 
       year: 2017, 
       lover: 'qingjie' 
      }
    }
    */
    
    console.log(b);
    /*
    { 
     num: 30,
     arr: [ 9, 23 ],
     obj: { 
       year: 2017, 
       lover: 'qingjie' 
      }
    }
    */
    

    相关文章

      网友评论

          本文标题:简单的js深拷贝

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