我的成长磨练,每天写博客,年轻人,卷起袖子,来把手弄脏吧! ------ 博客首页

js中对象的拷贝,浅拷贝和深拷贝

JS中对象分为基本类型和复合(引用)类型,基本类型存放在栈内存,复合(引用)类型存放在堆内存。

简单的变量,内存小,我们直接复制不会发生引用。

而对于对象这种内存占用比较大的来说,直接复制就会发生引用,因为这种复制,只是将复制出来的东西的指向指向了要复制的那个东西,简单的说,就是两个都同时指向了一个空间,如果改变其中一个,另一个也会发生变化。这就发生了引用。

深拷贝和浅拷贝最根本的区别在于是否是真正获取了一个对象的复制实体,而不是引用。

1)深拷贝在计算机中开辟了一块内存地址用于存放复制的对象;那么我们就可以利用递归的思想来做,及省性能,又不会发生引用。

2)而浅拷贝仅仅是指向被复制的内存地址,如果原地址中对象被改变了,那么浅拷贝出来的对象也会相应改变。


更多angular1/2/4、ionic1/2/3、react、vue、微信小程序、nodejs等技术文章、视频教程和开源项目,请关注微信公众号——全栈弄潮儿



posted @ 2017-11-10 15:26  全栈弄潮儿  阅读(1014)  评论(0编辑  收藏  举报

全栈弄潮儿 - 创建于 2015年5月5日

这是一位web前端开发工程师的个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

致力于web前端开发,关注互联网前沿技术与趋势。


vue2-admin-grace | ionic3-awesome | Bootstrap中文网