表格1-深拷贝和浅拷贝的区别
⚖️ 深拷贝与浅拷贝对比
| 特性 | 浅拷贝 (Shallow Copy) | 深拷贝 (Deep Copy) |
|---|---|---|
| 核心区别 | 只复制对象或数组的第一层。 | 递归复制对象或数组的所有层级。 |
| 内存关联 | 新对象与原对象共享深层(引用类型)数据。 | 新对象与原对象在内存中完全独立。 |
| 数据修改 | 修改新对象的深层数据,原对象会被影响。 | 无论修改新对象的哪一层,原对象都不会被影响。 |
| 引用类型 | 复制的是引用(内存地址)。 | 复制的是实际的数据值,并分配新的内存空间。 |
| 常见实现 | Object.assign({}, source)、扩展运算符 ({...source})、Array.prototype.slice()。 |
JSON.parse(JSON.stringify(source))、专业的库函数(如 Lodash 的 _.cloneDeep())。 |
| 适用场景 | 对象中只包含基本数据类型(如数字、字符串)时;或仅需复制表层结构时。 | 对象或数组包含多层嵌套结构,且需要彻底独立新数据时。 |
浙公网安备 33010602011771号