深度克隆 (深拷贝)
拷贝数据的方法
1 —— 直接赋值 =
2 —— Object.assign()
3 —— Array.prototype.concat()
4 —— Array.prototype.slice()
5 —— JSON.parse(JSON.stringify()), 拷贝的数据里 不能有函数
- 因为 JSON.stringify / JSON.parse 没法处理函数
以上只有 5 是深拷贝
1 | var arr = [1, 2, { name: 'zs' }] |
拷贝后 (针对对象/数组) 修改新变量会改变源变量的方式称为
浅拷贝
- 浅拷贝特点
- 拷贝后生成的新数据的修改会影响原数据, 使得原数据不安全
- 浅拷贝特点
拷贝后 (针对对象/数组) 修改新变量不会改变源变量的方式称为
深拷贝
如何实现深拷贝?
1 | // 检测数据类型 返回 Array、Object、String... |