- 只能实现Object和Array的深拷贝
- 函数、Map、Set等类型没有实现
function deepClone(obj, tar) {
tar = tar ? tar : {}
for(let key in obj) {
if(obj.hasOwnProperty(key)) {
if(typeof obj[key] === 'object') {
tar[key] = Object.prototype.toString.call(obj[key]) === '[object Object]' ? {} : []
deepClone(obj[key], tar[key]); // 递归
}else {
tar[key] = obj[key]
}
}
}
return tar;
}
网友评论