let obj = {
name: 'lucy',
age: 18,
eat: function () { return this },
arr: ['1', '2', '3', '4', '5', '6', '7', '8', '9'],
children: {
name: "alice",
age: 18
}
}
function deepClone(obj) {
switch (true) {
case typeof obj !== 'object' && typeof obj !== 'function':
return obj;
case typeof obj == 'function':
return obj
case Array.isArray(obj):
let arr = []
for (let i = 0; i < obj.length; i++) {
arr[i] = deepClone(obj[i])
}
return arr
case typeof obj == 'object':
let objs = {}
for (let key in obj) {
objs[key] = deepClone(obj[key])
}
return objs
default: return obj
}
}
console.log(deepClone(obj)===obj);