let obj = {
name:'zs',
hobby:['basketball','reading','swimming'],
address:{
city:'beijing',
street:'shanghai'
},
}
function deepClone(data){
// 判断data数据类型,如果没有值或为普通数据类型 return 返回
if(typeof data!=='object' || data ==null){
return data
}
//声明一个变量
let result;
//判断 data是不是对象,如果不是,就定义为数组
if(data instanceof Object){
result = {}
}else{
result = []
}
for(let key in data){
// 遍历,判断当前key属性是不是data自身的属性,防止原型链继承属性
if(data.hasOwnProperty(key)){
//递归调用
result[key] = deepClone(data[key])
}
}
return result
}
let c1 = deepClone(obj)
console.log(c1.address ===obj.address); //false
console.log(c1.hobby === obj.hobby); //false