// 遍历对象
// 判断是不是原始值
// 判断是数组还是对象
// 建立相应的对象
// 递归
function deepClone(origin, target) {
const toStr = Object.prototype.toString;
const arrStr = "[object Array]";
for (let i in origin) {
if (origin.hasOwnProperty(i)) {
if (origin[i] !== "null" && typeof(origin[i]) === 'object') {
target[i] = toStr.call(origin[i]) === arrStr ? [] : {};
deepClone(origin[i], target[i]);
} else {
target[i] = origin[i];
}
}
}
}