💡
原文英文,约400词,阅读约需2分钟。
📝
内容提要
浅拷贝创建一个新对象,复制顶层属性,嵌套对象的引用共享,修改会影响原对象;深拷贝递归复制所有属性,确保嵌套对象独立,修改不影响原对象。
🎯
关键要点
- 浅拷贝创建一个新对象,复制顶层属性。
- 浅拷贝中嵌套对象的引用共享,修改会影响原对象。
- 示例:修改浅拷贝中的嵌套对象会改变原对象的值。
- 深拷贝创建一个新对象,递归复制所有属性。
- 深拷贝确保嵌套对象独立,修改不影响原对象。
- 示例:修改深拷贝中的嵌套对象不会改变原对象的值。
❓
延伸问答
什么是浅拷贝?
浅拷贝创建一个新对象,复制顶层属性,但嵌套对象的引用共享,修改会影响原对象。
浅拷贝和深拷贝有什么区别?
浅拷贝只复制顶层属性,嵌套对象共享引用;深拷贝递归复制所有属性,确保嵌套对象独立。
如何实现深拷贝?
可以使用 JSON.parse(JSON.stringify(original)) 来实现深拷贝。
修改浅拷贝中的嵌套对象会有什么影响?
修改浅拷贝中的嵌套对象会改变原对象的值,因为它们共享同一内存位置。
深拷贝的特点是什么?
深拷贝确保嵌套对象独立,修改深拷贝中的嵌套对象不会影响原对象。
浅拷贝的示例是什么?
示例:let original = { a: 1, b: { c: 2 } }; let shallowCopy = { ...original }; shallowCopy.b.c = 3; 这会改变原对象的值。
➡️