【JavaScipt高级程序设计 第4版】第4章笔记 简单的浅拷贝深拷贝

4.1.2复制值

 如果obj1的值发生改变。则会影响到obj2,反之同理,因为他们都是指向同一个堆内存。这就是浅拷贝

 而如果只是单层的简单对象,则可以使用es6的扩展运算符 ...

let obj2 = {...obj1}

 这样两者就互不干扰。但是前提是这是单层的对象。

倘若是多层的复杂对象。则用扩展运算符拷贝在这里也会影响到另一边。

let obj1 = {
  a:{d:5},
  b:2    
}

这个时候只能用深拷贝了。深拷贝则是在内存中开多个地址存放,互不影响。(这里我喜欢转json)

let obj4 = JSON.parse(JSON.stringify(obj1))
原文地址:https://www.cnblogs.com/HDWdemo/p/13786495.html