深拷贝概念:增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存。也就是说不随着拷贝前的对象变化而变化。
function getDeepData(obj) {
const targetObj = obj.constructor === Array ? [] : {};
for (const keys in obj) {
if (obj.hasOwnProperty(keys)) {
if (obj[keys] && typeof obj[keys] === 'object') {
targetObj[keys] = obj[keys].constructor === Array ? [] : {};
targetObj[keys] = getDeepData(obj[keys])
} else {
targetObj[keys] = obj[keys]
}
}
}
return targetObj;
}