js使用递归实现深拷贝
实现思维:判断是否是对象/数组,对其使用for in遍历,每个属性判断是对象就调用当前函数并将结果赋值给当前属性
function clone(obj){
if(obj.constructor !==Array && obj.constructor !==object){
return obj
}else{
let targetObj=obj.constructor === Array ? [] : {};
for(let i in obj){
if(typeof obj[i] === 'object'){
targetObj[i] = obj[i].constructor === Array ? [] : {};
targetObj[i]=clone(obj[i])
}else{
console.log(obj[i])
targetObj[i]=obj[i]
}
}
}
return targetObj
}
let ob={
a:12,
b:"sds",
preson:{
c:"2",
xiao:{
d:13
}
},
fuc:function(){
}
}
let newObj=clone(ob)
console.log(newObj)