以下是使用JavaScript实现复制所有数据类型的深拷贝的示例代码:

function deepCopy(obj) {
  // 确定obj的类型
  let type = Object.prototype.toString.call(obj).slice(8, -1);

  // 根据类型分别处理
  switch (type) {
    case "Object":
      let newObj = {};
      for (let key in obj) {
        newObj[key] = deepCopy(obj[key]);
      }
      return newObj;
    case "Array":
      return obj.map((item) => deepCopy(item));
    case "Date":
      return new Date(obj);
    case "RegExp":
      return new RegExp(obj.source, obj.flags);
    default:
      return obj;
  }
}

使用示例:

let obj = {
  a: 1,
  b: "2",
  c: [3, 4],
  d: { e: "5", f: [6, 7] },
  g: new Date(),
  h: /abc/gi,
};

let newObj = deepCopy(obj);
console.log(newObj); // {a: 1, b: "2", c: Array(2), d: {…}, g: Date, …}
使用JavaScript写一个复制所有数据类型的深拷贝

原文地址: https://www.cveoy.top/t/topic/bU5x 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录