js中的深复制与浅复制

基本类型赋值

基本类型赋值是将是将值复制给这个变量,变量之间的赋值,是将变量的值给复制给其他变量。都是将值复制存到相应栈里面。

引用类型赋值

引用类型赋值,是将引用类型的指针进行复制,引用类型存在堆中,变量存储的是引用类型的指针,指针指向引用类型,例如图1。

图1

浅复制

es6中已经有了浅复制的用法,Object.assign(),复制第一层,什么是第一层呢,如图2所示

图2

同之前的对象的赋值是一个道理,但是浅复制会将第一层进行复制,第二层以后的对象将不会被复制。

深复制

深复制顾名思义就是全部都复制,复制一个新的对象放到新的指针里面,两个内容完全一样但是互不影响。深复制使用递归,将对象进行复制。如图3。

图3

深复制还可以使用json的方法去写,使用JSON.parse(JSON.stringify(Arr)),对数据进行深复制。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容