JS中由于数据类型的不同,而导致直接的赋值会出现偏差,基本数据类型是存放在栈中的,而引用数据类型是存放在堆中的。引用数据类型的变量存储的是数据的引用地址而不是数据本身,所以当你改变赋值的引用数据时,你会发现连原来的数据也被改变le,这里我们只讨论深拷贝的方法。
深拷贝的方法
递归实现深拷贝
function copy(params){
let co = params instanceof Array ? [] : {}
for(let [key,value] of Object.entries(params)){
value instanceof Object ? co[key] = copy(value) : co[key] = value
}
return co
}