function deepClone(target) {
if (typeof target === 'object' && target) {
let cloneObj = target.constructor === Array ? [] : {}
for (const key in target) {
cloneObj[key] = deepClone(target[key])
}
return cloneObj
} else {
return target
}
}
// 只考虑了Object和Array
// Date、RegExp、Map、Set都变成了Object,且值也不正确。
// 丢失了属性名为Symbol类型的属性
// 丢失了不可枚举的属性
// 原型上的属性也被添加到拷贝的对象中
// 不能处理循环引用