定义:
浅拷贝,自己创建一个新的对象,来接受你要重新复制或引用的对象值。如果对象属性是基本的数据类型,复制的就是基本类型的值给新对象;但如果属性是引用数据类型,复制的就是内存中的地址,如果其中一个对象改变了这个内存中的地址,肯定会影响到另一个对象。
深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”
简单来说,
浅拷贝只复制某个对象的引用,而不复制对象本身,新旧对象还是共享同一块内存。
深拷贝会创造一个摸一样的对象,新对象和原对象不共享内存,修改新对象不会改变原对对象。
实现方式:
浅拷贝
1 Object.assign()
2 拓展运算符 let a={…b}
深拷贝
使用 lodash,lodash是一各js库,常用于实现,防抖与节流
按需引入import cloneDeep from ‘lodash/cloneDeep’
let a=cloneDeep(b),即可将b内数据完全的复制到对象a当中