js 解决引用赋值导致修改新数组(对象)导致原数组(对象)跟着改变的问题

原因: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);

  

  

posted @ 2020-06-02 15:44  PromiseOne  阅读(2547)  评论(0编辑  收藏  举报