Object.assign

Object.assign()拷贝

当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。

 

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.jianshu.com/p/2d75d242c6e1
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2020-07-25 09:56  小萌豚  阅读(104)  评论(0编辑  收藏  举报