js 浅拷贝和深拷贝
时间: 2023-10-17 21:29:40 浏览: 105
在JavaScript中,浅拷贝是指只拷贝了对象的一层内容,而引用类型的深层次数据仍然共享内存地址。简单来说,浅拷贝只是拷贝了对象的外层,而没有完全拷贝整个对象的内容。
举个例子,如果有一个数组里面包含了另一个数组或对象,浅拷贝只会拷贝外层的数组,而深层次的数组或对象仍然是共享内存地址的。
在JavaScript中,有一些常见的浅拷贝方法,比如使用Object.assign()方法可以将一个对象的属性拷贝到另一个对象中。通过Object.assign()方法,我们可以将源对象的属性浅拷贝到目标对象中。对于目标对象的已有属性,如果与源对象中的属性重复,那么源对象的属性会覆盖目标对象的属性值。
综上所述,浅拷贝只是拷贝了对象的一层内容,并不能改变对象的地址,所以深层次的引用类型仍然是共享内存地址的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [JS的深拷贝和浅拷贝](https://blog.csdn.net/baidu_33438652/article/details/124219924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [js浅拷贝和深拷贝](https://blog.csdn.net/weixin_57660141/article/details/126060089)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文