深浅拷贝(详细)

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

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

    

 

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

   

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

        

 

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

  

 

   但是 null 和 数组

       

 

   因此需要另做判断

  

 

   这就OK了

 

 

 

  

 

 

 

 

 

 

posted @ 2020-08-06 18:28  白白了个白白  阅读(185)  评论(0编辑  收藏  举报