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类型的属性 // 丢失了不可枚举的属性 // 原型上的属性也被添加到拷贝的对象中 // 不能处理循环引用