首页 > web前端 > js教程 > 正文

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

Mary-Kate Olsen
发布: 2024-10-04 22:25:02
原创
479 人浏览过

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板