如何实现对象的深拷贝

如何实现一个对象的深拷贝
利用JSON方法实现

let obj1 = {
  name: "11",
  age: "22"
}
let obj2 = JSON.parse(JSON.stringify(obj1));
obj2.name = "2222220"
console.log("obj1", obj1);// {name: "11", age: "22"}
console.log("obj2", obj2);// {name: "2222220", age: "22"}

利用原生方法实现

function cloneNew(cont) {
  let cloneN = Array.isArray(cont) ? [] : {};
  if (cont && typeof cont === "object") {
    for (key in cont) {
      if (cont.hasOwnProperty(key)) {
        if (cont[key] && typeof cont[key] === "object") {
          cloneN[key] = cloneNew(cont[key]);
        } else {
          cloneN[key] = cont[key];
        }
      }
    }
  }
  return cloneN;
}
let obj1 = {
  name1: "111",
  name2: "222",
  name3: "333"
}
let obj2 = cloneNew(obj1);
obj2.name1 = "9999";
obj2.name2 = "999999";
console.log(obj1);// {name1: "111", name2: "222", name3: "333"}
console.log(obj2);// {name1: "9999", name2: "999999", name3: "333"}

你可能感兴趣的:(如何实现对象的深拷贝)