前端多个变量指向同一个对象的问题
Posted lisaj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端多个变量指向同一个对象的问题相关的知识,希望对你有一定的参考价值。
环境: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了。
以上是关于前端多个变量指向同一个对象的问题的主要内容,如果未能解决你的问题,请参考以下文章