Object.assign()深拷贝 和浅拷贝问题
关于Object.assign()深拷贝 和 浅拷贝的问题一直困扰了我很多,我将从以前几个方面进行总结:
1. Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
Object.assign(targetobj, sources1, source2)
如下例子1所示,更改zy 从 zs上复制得到,更改zy上的值并不会导致zs的值改变。
示例1
示例2
总结:Object.assign()对1级属性的拷贝属于神拷贝,对2级对象的拷贝属于浅拷贝。如果要使用深拷贝。可以借助loadsh中的cloneDeep()方法https://www.lodashjs.com/docs/lodash.cloneDeep