手写
//递归深拷贝
const deepCopy=(arr)=>{
let newArr = Array.isArray(arr) ? [] : {}
Object.keys(arr).forEach(res=>{
newArr[res] = arr[res] instanceof Object ? deepCopy(arr[res]) : arr[res]
})
return newArr
}
简要回答
- 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存
- 深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象