小程序新赋值的变量修改后,原始变量也会修改

这个问题真的不好描述,所以不好搜索原因。

遇到这个问题的情况绝大部分是在小程序的开发过程中,因为web的开发很好少会有直接操作对象的,即使是有这种情况,我也会多写两行代码,跳过对象的操作(当然这个时候我还不知道具体因为什么)。

在做一个小程序项目的时候,操作数据面对的大部分是对象,但是在把一个数据赋值给一个新变量,在修改新变量后,原始的数据也跟着修改了。这个问题起始已经困扰我大半年了,上次出现这种情况是在做uni-app时遇到的,我以为是这是dclouod特有的,因为这个我放弃了dcolud(缺乏基础理论是多么大的坑)。

这次做小程序不得不面对,措辞了好久才收到这个问题的答案。

大致原因是:在js里,字符串、数字、布尔、这种称为基础类型是可以直接赋值的,即使是修改后也不会影响原来的数据。但是引用类型比如object,array这种就会出现上面描述的问题。现在发现自己理论好差。

解决方法:var arr1= JSON.parse(JSON.stringify(arr1));

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值