// 检查类型constcheckType=data=>{returnObject.prototype.toString.call(data).slice(8,-1)}constdeepClone=target=>{const targetType =checkType(target)let result =nullif(targetType ==='Object'){
result ={}}elseif(targetType ==='Array'){
result =[]}else{return target
}for(const key in target){let value = target[key]const valueType =checkType(value)if(['Array','Object'].includes(valueType)){
result[key]=deepClone(value)}else{
result[key]= value
}}return result
}