深拷贝与浅拷贝

深拷贝与浅拷贝

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

浅拷贝创建一个新对象,复制顶层属性,嵌套对象的引用共享,修改会影响原对象;深拷贝递归复制所有属性,确保嵌套对象独立,修改不影响原对象。

🎯

关键要点

  • 浅拷贝创建一个新对象,复制顶层属性。
  • 浅拷贝中嵌套对象的引用共享,修改会影响原对象。
  • 示例:修改浅拷贝中的嵌套对象会改变原对象的值。
  • 深拷贝创建一个新对象,递归复制所有属性。
  • 深拷贝确保嵌套对象独立,修改不影响原对象。
  • 示例:修改深拷贝中的嵌套对象不会改变原对象的值。

延伸问答

什么是浅拷贝?

浅拷贝创建一个新对象,复制顶层属性,但嵌套对象的引用共享,修改会影响原对象。

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

浅拷贝只复制顶层属性,嵌套对象共享引用;深拷贝递归复制所有属性,确保嵌套对象独立。

如何实现深拷贝?

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

修改浅拷贝中的嵌套对象会有什么影响?

修改浅拷贝中的嵌套对象会改变原对象的值,因为它们共享同一内存位置。

深拷贝的特点是什么?

深拷贝确保嵌套对象独立,修改深拷贝中的嵌套对象不会影响原对象。

浅拷贝的示例是什么?

示例:let original = { a: 1, b: { c: 2 } }; let shallowCopy = { ...original }; shallowCopy.b.c = 3; 这会改变原对象的值。

➡️

继续阅读