JavaScript 拷贝笔记
1. 浅拷贝
浅拷贝只复制对象的第一层属性,如果属性是引用类型,拷贝的是引用地址。
1 | const obj = { a: 1, b: { c: 2 } }; |
- 数组浅拷贝
1 | const arr = [1, [2, 3]]; |
2. 深拷贝
深拷贝会递归复制对象及其嵌套对象,完全独立。
- JSON 方法(简单对象)
1 | const deepCopy = JSON.parse(JSON.stringify(obj)); |
- 手写递归深拷贝(支持循环引用)
1 | function deepClone(obj, map = new WeakMap()) { |