面试题-深克隆

53 阅读1分钟

个人写法,有见解请指正

 deepClone = function (obj) {
    let res;
    if (typeof obj === "object") {
      res = Array.isArray(obj) ? [] : {};
      for (key in obj) {
        if (typeof obj[key] === "object") {
          res[key] = deepClone(obj[key]);
        } else {
          res[key] = obj[key];
        }
      }
    } else {
      return obj;
    }
    return res;
  };

  let object = {
    a: 1,
    b: 2,
    c: {
      d: () => {},
    },
  };

  let res = deepClone(object);