js深拷贝

zhuc 2022-12-30 23 阅读
deepClone(obj) {
  let _this = this;
  let objClone = Array.isArray(obj) ? [] : {};
  if (obj && typeof obj === "object") {
    for (let key in obj) {
      if (obj.hasOwnProperty(key)) {
        //判断ojb子元素是否为对象,如果是,递归复制
        if (obj[key] && typeof obj[key] === "object") {
          objClone[key] = _this.deepClone(obj[key]);
        } else {
          //如果不是,简单复制
          objClone[key] = obj[key];
      }
    }
  }
  }
  return objClone;
},