一、深拷贝 拷贝结束后 虽然值是一样的,但是内存地址不一样
二、浅拷贝 拷贝的是内存地址,使目标对象的指针指向源对象的指针
三、深拷贝的方法
1、... 对象中只有一级属性时候为深拷贝 有二级属性的时候为浅拷贝
2、Objec.assign 同上
3、JSON.parse 和JSON.stringify 不能拷贝方法
4、lodash函数库实现深拷贝 cloneDeep()
5、递归加循环
function cloneDeep(obj) {
var cloneObj = Array.isArray(obj) ? [] : {}
if (obj && typeof obj === 'object') {
for(key in obj) {
if (obj[key] && typeof obj[key] === 'object') {
cloneObj[key] = cloneDeep(obj[key])
} else {
cloneObj[key] = obj[key]
}
}
}
return cloneObj
}