const isObject = (obj) => {
return typeof obj === 'object' && obj !== null;
}
function deepClone(obj) {
const newObj = obj instanceof Array ? [] : {};
for(let key in obj) {
const item = obj[key];
newObj[key] = isObject(item) ? deepClone(item) : item
}
return newObj;
}
const a = {
name: '我是a'
}
const arr = [1, 2, {
name: '我是arr',
list: [1,2,3]
}]
const copy_a = deepClone(a);
a.name = 'gaibianhoude a'
console.log('copy_a---', copy_a)
const copy_arr = deepClone(arr);
arr[2].name = 'gaibianhoude rra'
console.log('copy_arr---', copy_arr)
console.log('a---0', a)
console.log('arr---0', arr)