浅拷贝和深拷贝。
浅拷贝
相同空间
多个引用指向同一对象实例,改变一个引用会使得另一个引用随之发生变化
let a=[1,2,3],b=[]
b.push(a) //b:[[1,2,3]]
a.pop() //b: [[1,2]]
上述代码在a被push进b后,改变a,b也会发生变化
深拷贝
新的空间
在堆中重新分配内存,把原对象所有属性都进行新建拷贝,拷贝后的对象与原对象完全隔离,各自的改变互不影响
一些数组的深拷贝方法
var a=[1,2,3]
var b=[...a]
var b=a.slice()
var b=Array.from(a)
var b=[].concat(a)