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

浙公网安备 33010602011771号