如果直接用赋值进行对象拷贝,会导致两个对象拥有相同的地址,导致在修改其中一个的时候会同时修改
这个时候我们可以使用浅拷贝
浅拷贝有几种方式:
1.使用 ... 展开运算符来给新对象直接赋值
2.使用Object.assign()来拷贝
深拷贝
首先深拷贝和深拷贝只针对引用类型
深拷贝:拷贝的是对象,不是地址
常见方法:
1.通过递归实现深拷贝
2.lodash/cloneDeep
3.通过JSON.stringify() 实现
1.函数递归:
如果一个函数在内部可以调用其本身,那么这个函数就是递归函数
2.js库lodash里面cloneDeep内部实现了深拷贝
需要先引用js库
3.利用JSON实现深拷贝
把对象转化为 JSON 字符串,再将 JSON 字符串转化为对象