首页  >  文章  >  web前端  >  JavaScript 中对象的浅拷贝与深拷贝

JavaScript 中对象的浅拷贝与深拷贝

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-04 22:25:02472浏览

Shallow vs Deep Copy of Objects in JavaScript

当我们需要将一个对象复制到另一个对象时,我们通常使用这样的东西:


const mainObject = { id: 1 };
const secondaryObject = { ...mainObject };


但这仅适用于复制对象的浅层属性。如果我们有类似以下代码的情况,则场景会发生变化:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const secondaryObject = { ...mainObject };


属性用户不会被复制;它仍然与 mainObject 相关。因此,如果我们更改 user 属性,它也会影响 mainObject。为了解决这个问题,我们可以执行以下操作:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const deepCopy = JSON.parse(JSON.stringify(mainObject ));


现在,我们有了 mainObject 的深层副本,具有两个不同的内存地址。

以上是JavaScript 中对象的浅拷贝与深拷贝的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn