// function deepClone(parent,child){
// child = child ? child :{}
// for(let key in parent){
// //判断是不是自己的属性
// if(Object.hasOwnProperty.call(parent,key)){
// //判断是不是对象
// if(typeof parent[key] == 'object'){
// //判断是数组还是对象
// child[key] = Object.prototype.toString.call(parent[key]) === '[object object]'? {} :[]
// deepClone(parent[key],child[key])
// }
// }
// child[key] = parent[key]
// }
// return child
// }
// let obj = {
// age: 5,
// hobby: [1, 2, 3],
// getAge() {
// console.log(this.age)
// },
// home: ['背景', '上哈'],
// name: undefined
// }
// const result = deepClone(obj)
// console.log(result,'result')
function deepClone(obj){
let result
if(typeof obj == 'object'){
//判断是数组还是对象
result = obj.constructor == Array ? [] : {};
for(let key in obj){
result[key] = typeof obj[key] == 'object' ? deepClone(obj[key]):obj[key]
}
}else{
result = obj
}
return result;
}
let obj = {
age: 5,
hobby: [1, 2, 3],
getAge() {
console.log(this.age)
},
home: ['背景', '上哈'],
name: undefined
}
const result = deepClone(obj)
console.log(result,'result')
console