手写深拷贝
深拷贝
错误答案 1
使用 JSON.stringify
和 JSON.parse
- 无法转换函数
- 无法转换
Map
Set
- 无法转换循环引用
PS:其实普通对象使用 JSON API 的运算速度很快,但功能不全
错误答案 2
使用 Object.assign
—— 这根本就不是深拷贝,是浅拷贝 !!!
Object.assign(obj1, {...})
const obj2 = Object.assign({}, obj1, {...})
- 可以理解为,浅层生拷贝,第二层开始都是浅拷贝了
错误答案 3
只考虑了普通的对象和数组
- 无法转换
Map
Set
- 无法转换循环引用
正确答案
深拷贝
1 |
|
手写深拷贝
http://example.com/2023/06/02/手写深拷贝/