可以使用递归来实现深拷贝操作,递归地复制对象的每一个属性和子属性。

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

const obj = {
  arr: [
    { name1: 1, name2: 2 },
    'value'
  ],
  string: 'value'
};

const cloneObj = deepClone(obj);
console.log(cloneObj);

输出结果:

{
  arr: [
    { name1: 1, name2: 2 },
    'value'
  ],
  string: 'value'
}

这样就实现了一个深拷贝的操作

使用js实现一个深拷贝操作请不要使用JSONstringifyconst obj = arr key1 name1 1 name2 2 key2 value string value

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

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