直接上例子
let obj = {id:"1",ifo:{id:2022}}
let a = {...obj}
a.id=2
a.ifo.id=2048
console.log(obj) // {id:"1",ifo:{id:2048}
…针对与简单的一级基础数据实现了深拷贝,但对于二级及以上的数据,就变成浅拷贝了,传过来的依旧是原数据的地址
解决方案:
1.为二级的引用数据类型再进行一次展开就可以了
let obj = {id:"1",ifo:{id:2022}}
let a = {...obj,ifo:{...obj.info}}
a.id=2
a.ifo.id=2048
console.log(obj) // {id:"1",ifo:{id:2022}
2.深拷贝方法
let obj = {id:"1",ifo:{id:2022}}
let a = JSON.parse(JSON.stringify(obj))
但是这方法有很多局限性,具体可以参考:
https://blog.csdn.net/weixin_45452083/article/details/121852054
3.递归,锻炼逻辑