方法一:使用JSON.parse和JSON.stringify

function deepCopy(obj) {
  return JSON.parse(JSON.stringify(obj));
}

方法二:使用递归

function deepCopy(obj) {
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }
  
  let copy = Array.isArray(obj) ? [] : {};
  
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      copy[key] = deepCopy(obj[key]);
    }
  }
  
  return copy;
}

方法三:使用Object.assign

function deepCopy(obj) {
  return Object.assign({}, obj);
}

方法四:使用递归和Object.create

function deepCopy(obj) {
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }
  
  let copy = Object.create(Object.getPrototypeOf(obj));
  
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      copy[key] = deepCopy(obj[key]);
    }
  }
  
  return copy;
}
``
前端使用递归实现深拷贝请给出多种方法和简单代码

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

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