原因:JavaScript 中对象的赋值是默认引用赋值的(两个对象指向相同的内存地址)

解决方案1:

用 JSON.stringify 把对象转换成字符串,再用 JSON.parse 把字符串转换成新的对象

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

  

解决方案2:

Object.assign()拷贝

当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。

let obj1 = {'name': 'hello world'};
let obj2 = Object.assign({},obj1);

let arr1 = [1,2,3,4,5];
let arr2 = Object.assign([],arr1);

  

  

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
  • 2022-01-23
  • 2021-05-24
猜你喜欢
  • 2021-05-30
  • 2022-12-23
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案