码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-06-04 17:32:23      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:内存   环境   更改   改变   表示   对象   json   问题   string   

环境: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了。

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

标签:内存   环境   更改   改变   表示   对象   json   问题   string   

原文地址:https://www.cnblogs.com/LisaJ/p/10974771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!