深拷贝函数–递归
//标准的深拷贝 引用数据类型
const deepClone = (source)=>{
// [] => Array() {} => Object
const targetObj = source.constructor === Array ? [] : {};
for(let keys in source){
if(source.hasOwnProperty(keys)){
//引用数据类型
if(source[keys] && typeof source[keys] === 'object'){
//维护层代码
targetObj[keys] = source[keys].constructor === Array ? [] : {};
//递归
targetObj[keys] = deepClone(source[keys])
}else{
//基本数据类型,直接赋值
targetObj[keys] = source[keys]
}
}
}
return targetObj;
}