js深拷贝

2022-04-25  本文已影响0人  Delevent
  1. 只能实现Object和Array的深拷贝
  2. 函数、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;
}
上一篇 下一篇

猜你喜欢

热点阅读