checkType 检查属性类型
deepClone 实现深拷贝
function checkedType(target) {
let typeObj= Object.prototype.toString.call(target)
return typeObj.slice(8, -1)
}
function deepClone(target) {
const targetType = checkedType(target)
let result;
if (targetType === 'object') {
result = {}
} else if (targetType === 'Array') {
result = []
} else {
return target
}
for (let i in target) {
let value = target[i]
if (checkedType(value) === 'Object' || checkedType(value) === 'Array') {
result[i] = deepClone(value)
} else {
result[i] = value;
}
}
return result
}