对于Object.assign的一些个人理解,如若有错,请帮忙指正。
思考Object.assign的原因
今天,因为朋友问了我深拷贝浅拷贝的问题。他先是问我什么是深拷贝,什么是浅拷贝。我就回答,浅拷贝就是给指针地址,深拷贝就是给值。
然后他就说,他也是这么理解的,但是为什么在Object.assign中,不是这样的啊。
然后他就给我看了这个方法的效果。如下图所示:
然后问我,这个不是浅拷贝吗?那么它不是应该和直接赋值的效果一样吗?就如下面图片展示的那样。
因为本人刚接触前端时间尚短,没有接触太多项目,还在公司实习中。因此对于这个ES6的对象新方法,并不是很熟悉,但是我知道有这个东西。
所以我去百度了,但是,不管是百度中,还是阮一峰大佬的《ES6标准入门》中,都写了这个方法是浅拷贝。
但是,我在看阮一峰大佬的《ES6标准入门》的时候看到了下面这句话。
哦,特地提到拷贝对象的时候,是引用。那么意思是,在非对象的第一层数据中,就像是深拷贝一样的处理咯。
结合上面朋友的结果。我试着用我自己对这个现象理解的,进行了另外一种操作。
如下图所示:
然后得到的结果为:
到这里,我懂了。