美文网首页
JavaScript浅复制与深复制

JavaScript浅复制与深复制

作者: 前端小切图仔 | 来源:发表于2018-06-14 13:55 被阅读0次

一、浅复制 

浅复制是复制引用,比如有一个对象a,a对象指向一块内存空间,b复制a后,两个对象指向同一空间,如果其中一个对象的值发生改变,另一个对象指向的值也会发生改变。


实例1

b对象复制a对象,如果此时改变b对象的data值,a对象的data值也会改变。

实例二

b数组复制数组a,b数组的值改变了,a数组的值也改变了。

二、深复制 

深复制是复制实例,还是对象a和b,深复制是在计算机中重新开辟一块内存地址,让b指向这块新开辟的内存地址,同时复制a对象。

实例

这段代码简化一下其实是这样的:

意思就是重新开辟一块内存地址,让新对象去指向它,然后递归的去遍历原对象的属性,赋值给新对象。

相关文章

  • 浅拷贝和深拷贝

    本文参考:JavaScript中的浅拷贝和深拷贝js 深拷贝 vs 浅拷贝深入剖析 JavaScript 的深复制...

  • JavaScript浅复制与深复制

    一、浅复制 浅复制是复制引用,比如有一个对象a,a对象指向一块内存空间,b复制a后,两个对象指向同一空间,如果其中...

  • 设计模式 - 原型模式

    注意深复制与浅赋值的问题 C#中如果需要实现深复制,必须实现 ICloneable 接口。

  • 深拷贝(复制)与浅拷贝(复制)

    对于字符串类型,浅复制是对值的复制,对于对象来说,浅复制是对对象地址的复制,并没有开辟新的栈,也就是复制的结果是两...

  • Java 浅拷贝和深拷贝 拷贝和复制

    Java 复制与拷贝 大纲 浅拷贝和深拷贝 浅拷贝就是复制对象的一个精确副本 ==对于基本数据类型就是复制值,对于...

  • Javascript对象的深浅拷贝

    开门见山,有人叫对象的复制为深复制浅复制,也有人叫深拷贝浅拷贝。其实都是copy。 深拷贝(递归复制,复制所有层级...

  • 浅|深 复制

    浅复制 //只写main函数 //结果是 我们可以看到一旦pointArray1发生了改变pointArray2也...

  • JavaScript深复制浅复制

    浅复制 只是复制了引用,复制前后都指向同一个对象,彼此之间会相互影响 深复制 在堆中重新分配内存,复制前后指向不同...

  • 前端笔记(二) 对象的深浅拷贝,函数的防抖与节流,函数柯里化 ,

    对象的深浅拷贝 对象的深拷贝与浅拷贝的区别: 浅拷贝:仅仅复制对象的引用, 而不是对象本身。 深拷贝:把复制的对象...

  • JS深浅拷贝

    浅拷贝 浅拷贝的意思就是只复制引用,而未复制真正的值。 深拷贝 深拷贝就是对目标的完全拷贝,不像浅拷贝那样只是复制...

网友评论

      本文标题:JavaScript浅复制与深复制

      本文链接:https://www.haomeiwen.com/subject/qcqyeftx.html