上一题下一题

浅拷贝与深拷贝在嵌套对象、循环引用、Date 和函数属性场景下的边界是什么

进阶版
来源:meituan初级工程师Object.assign展开运算符structuredClone深浅拷贝
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

浅拷贝和深拷贝的核心区别在于: 是否递归复制引用类型内部的数据 。

浅拷贝只复制对象第一层属性。如果属性是基本类型,会复制值;如果属性是对象、数组这类引用类型,复制的是引用地址。所以在嵌套对象场景下,浅拷贝后的对象和原对象会共享内部对象。

比如:

这里 info 是嵌套对象,浅拷贝后仍然指向同一个对象。

深拷贝则会递归复制对象内部的引用类型,理论上修改拷贝对象不会影响原对象:

但深拷贝有几个边界需要注意。

第一个是 循环引用 。如果对象内部互相引用,普通递归深拷贝会死循环:

```js const

登录后查看完整内容