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);

  

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM