/**
* dest: 目标对象
* ori: 源对象
*/
function deepCopy(dest, ori) {
for (const key in ori) {
if (Object.hasOwnProperty.call(ori, key)) {
const element = ori[key]
if (typeof element === 'object') {
// 引用属性
dest[key] = element.constructor === Array ? [] : {}
// 递归
deepCopy(dest[key], element)
} else {
// 非引用属性
dest[key] = element
}
}
}
}
let objA = {
name: 'john',
child: {
name: 'lucy'
},
skin: ['white', 'blue']
}
let objB = {}
deepCopy(objB, objA)