vue里面接口获取的数组数据我赋给了两个变量,然后其中一个变量通过push添加了一个值,但是发现另一个变量也同步发生变化,如下:apiGetDeviceType().then(response=>{letdata=response.datathis.deviceType1=datathis.deviceType2=datathis.deviceType1.push({name:'全部',code:'all'})})不知道为啥
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
因为你的this.deviceType1和this.deviceType2都是指针指向response.data的,并不是独立的两个变量,而是两个一样的索引,所以你当你修改哪一个的属性,另一个也会跟着变。用json.parse(json.stringify(response.data))进行拷贝response.data就可以了
FFIVE
TA贡献1797条经验 获得超6个赞
基础啊..少年这里的data是一个对象,在js中是引用类型,赋予的不是值,而是引用的地址例如demoletobj={a:1}//引用类型lettemp1=objlettemp2=obj//此时temp1,和temp2都指向了obj,但不代表分成两份temp1.a=2console.log(temp1)//{a:2}console.log(temp2)//{a:2}当然为了实现“分成两份”可以参考浅拷贝与深拷贝
添加回答
举报
0/150
提交
取消