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

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

使用扩展运算符复制对象时,只能进行浅拷贝,嵌套对象的修改会影响原对象。要实现深拷贝,可以使用 `JSON.parse(JSON.stringify(object))` 方法,创建独立的对象副本。

🎯

关键要点

  • 使用扩展运算符复制对象时,只能进行浅拷贝。
  • 嵌套对象的修改会影响原对象。
  • 要实现深拷贝,可以使用 JSON.parse(JSON.stringify(object)) 方法。
  • 深拷贝创建独立的对象副本,具有不同的内存地址。

延伸问答

JavaScript 中如何进行对象的浅拷贝?

可以使用扩展运算符,例如 const secondaryObject = { ...mainObject };

为什么嵌套对象的修改会影响原对象?

因为浅拷贝只复制对象的第一层属性,嵌套对象仍然引用原对象。

如何实现对象的深拷贝?

可以使用 JSON.parse(JSON.stringify(object)) 方法来实现深拷贝。

深拷贝与浅拷贝有什么区别?

深拷贝创建独立的对象副本,具有不同的内存地址,而浅拷贝则共享嵌套对象的引用。

使用 JSON.parse(JSON.stringify(object)) 进行深拷贝有什么优缺点?

优点是可以创建独立的对象副本,缺点是不能拷贝函数和特殊对象(如 Date)。

在什么情况下需要使用深拷贝?

当对象包含嵌套对象且需要独立修改时,应该使用深拷贝。

➡️

继续阅读