1.浅拷贝在创建新实例类型时会用到,并保留在新实例中复制的值。浅拷贝用于复制引用指针,就像复制值一样。这些引用指向原始对象,并且在类的任何成员中所做的更改也将影响它的原始副本。浅拷贝允许更快地执行程序,它取决于所使用的数据的大小。
//浅拷贝
let a = [ 1 , 2 , 3 ];
let b = a
b.push(4)
console.log(a) // [1, 2, 3, 4]
console.log(b) // [1, 2, 3, 4]
2.深拷贝用于存储已复制的值。深层复制不会将引用指针复制到对象。它引用一个对象,并存储一些其他对象指向的新对象。原始副本中所做的更改不会影响使用该对象的任何其他副本。由于为每个被调用的对象创建了某些副本,因此深层复制会使程序的执行速度变慢。
//深拷贝
let a = 5;
let b = a
b = b+3
console.log(a) // 5
console.log(b) // 8