js对象深拷贝浅拷贝
时间: 2023-11-04 22:05:09 浏览: 108
js对象浅拷贝和深拷贝详解
浅拷贝是按位拷贝对象,它会创建一个新对象,有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。
深拷贝是指在拷贝对象时,递归地拷贝所有层级的对象属性和数组元素。深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时,即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。
在JavaScript中,可以使用Object.assign()方法来实现浅拷贝,这个方法会将所有可枚举的属性从一个或多个源对象复制到目标对象。但是Object.assign()只能实现浅拷贝,对于深拷贝,可以使用递归或者第三方库(如lodash、jQuery等)来实现。
阅读全文