浅拷贝复制的是 指针。指向同一块内存 ,这样浅拷贝 原始对象或者新对象的修改都是在同一内存区修改的,所以会同步变化。
深拷贝相当于重新开辟一块内存,把原始对象的值复制后填入新的内存区,原始对象和新对象的更改是在不同内存区修改的,
所以原始对象和新对象之间不会有 任何 影响。
对象只如果只有一层进行深拷贝,结果是深拷贝,如果有嵌套层, 嵌套层属于浅拷贝
arr2 = arr1.concat() 深拷贝
arr2 = [...arr1]; 深拷贝
arr2 = arr1.slice() 深拷贝
arr2 = arr1.copyWithin(target,start,end) 浅拷贝(copy结果也会修改原数组)
arr2 = arr1 浅拷贝
Object.assign(target, ...sources) 只有第一层深拷贝
Object.create(target) 只有第一层深拷贝
obj1 = JSON.parse(JSON.stringify( obj1))
Object.prototype.copy = (object) =>{ return Object.defineProperties( {},Object.getOwnPropertyDescriptors(object) ); }