常见的深拷贝方法还有解构赋值法和json赋值法但都不能一劳永逸,这里展示的是一种比较完善的利用递归函数的深拷贝方式
代码如下
function deepClone(source) {
const tagetObj = source.constructor == Array ? [] : {};
for (let keys in source) {
if (source.hasOwnProperty(keys)) {
if (source[keys] && typeof source[keys] === 'object') {
tagetObj[keys] = source[keys].constructor === Array ? [] : {};
tagetObj[keys] = deepClone(source[keys]);
} else {
tagetObj[keys] = source[keys];
}
}
}
return tagetObj
}