前端多个变量指向同一个对象的问题

环境:ReactJs

描述:在state里面有2个对象:a=[1,2,3,4]; b=[1,2,3,4]。【其中,数字1,2,3,4均表示一个对象】

然后更改b=[1,2],a没动。结果发现a也变成了a=[1,2]。

分析:原因是Js变量指向同一块内存,你在改变数组的时候,要把它深拷贝过来。

可用的解决办法是:a= JSON.stringify([1,2,3,4]),这样就没问题了。用的时候JSON.parse(a)解析。

 

或者另外一种类似的情况:a={"id": 1, "type": 0},b=a;这样也会让a和b指向同一个对象。而如果改为a={"id": 1, "type": 0};b={};b=a;这样以后再改b的值就不会影响到a了。

posted @ 2019-06-04 17:18  LisaJ  阅读(537)  评论(0编辑  收藏  举报