深浅拷贝(详细)

/* // 深浅拷贝
    // 浅拷贝只拷贝最外一层,更深层次对象级别的只拷贝引用
    // 深拷贝拷贝多层,每一级别的数据都会拷贝
    */
    let zhang = {
      nmae : 'zhang san',
      age : 18
    }

    // 错误的克隆方法
    let lisi = zhang;
    console.log(lisi == zhang)  //true  
   
    // 浅拷贝只拷贝最外一层,更深层次对象级别的只拷贝引用
      // 深拷贝拷贝多层,每一级别的数据都会拷贝

    

   这种方法叫浅克隆:如果包含内嵌的对象或者数组,则不再复制副本

   

   光看表面确实一样,但是当我们更改了lisi的地址时,两个地址都会发生改变,由此就诞生了深克隆

        

   深克隆:如果包含内置对象或数组,也会复制副本

  

   但是 null 和 数组

       

   因此需要另做判断

  

   这就OK了

  

原文地址:https://www.cnblogs.com/J-Luck/p/13443665.html