const deepClone = target => {
if (typeof target !== 'object') {
return target
}
let cloneTarget = Array.isArray(target) ? [] : {}
for (const key in target) {
cloneTarget[key] = deepClone(target[key])
}
return cloneTarget
}
- 是对象吗?不是返回,是则继续
- 是数组吗?是则定义数组,否则定义对象
- for in 遍历,使用递归
- 递归结束后返回定义的值