💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
在JavaScript中,对象是引用类型,赋值时只复制内存地址,修改一个引用会影响所有引用。对象复制分为浅复制(仅复制第一层属性)和深复制(完全独立)。浅复制可用Object.assign或扩展运算符,深复制可用JSON方法或structuredClone。理解这些概念有助于避免意外副作用。
🎯
关键要点
-
在JavaScript中,对象是引用类型,赋值时只复制内存地址。
-
修改一个引用会影响所有引用到同一对象的变量。
-
两个变量相等是指它们引用同一内存中的对象,而不是内容相同。
-
对象复制分为浅复制和深复制。
-
浅复制仅复制第一层属性,嵌套对象仍然是引用。
-
浅复制可以使用Object.assign或扩展运算符。
-
深复制会完全独立复制整个对象,包括嵌套结构。
-
深复制可以使用JSON.parse和JSON.stringify方法。
-
JSON方法不处理函数、undefined、Infinity或特殊对象。
-
现代JavaScript中可以使用structuredClone进行深复制。
-
使用lodash等库可以实现深复制。
-
理解这些概念有助于避免在JavaScript中处理对象时的意外副作用。
➡️