【js数据方法】前端深拷贝与浅拷贝了理解(附实现方法)

一 概念

 深拷贝和浅拷贝使用解析 拷贝我们可以理解为复制,粘贴 概念: 浅拷贝

        创建一个新对象,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址

        。这个内存地址指向同一个堆内存,如果其中一个对象改变了堆内存存放的值,那么所有的对象都会受到影响。

        深拷贝

        创建一个新对象,如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,则从堆内存中开辟一个新的区域存放该引用类型指向的堆内存中的值,且修改新对象的值不会影响原对象。

二概念理解:

        1浅拷贝:数组对象等引用类型:a复制一个b,如果我改变b中的对象,属性,a也会跟着改变,或者改变a,b也会跟着改变。两个还是共用同一个属性。一个改变另一个跟着改变。

        2

        深拷贝:数组对象等引用类型:a复制一个b,但是我改变a的属性,b完全不受影响。两个具有独立的属性

        如果只是基本数据类型:

        3,如果数基础数据类型,number,string,boolean等类型,深拷贝和浅拷贝一样,修改a或者b的值,相互都不会相互影响

三 方法区别

3.1基础数据类型浅拷贝 深拷贝一样,彼此不会改变(浅拷贝)

 

猜你喜欢

转载自blog.csdn.net/jieweiwujie/article/details/128286625