从接口获取的数据同时赋值给两个变量,改变其中一个变量时,另一个变量的值也会跟着改变

从接口获取的数据同时赋值给两个变量,改变其中一个变量时,另一个变量的值也会跟着改变导致这个问题的原因是js中有两种数据类型:基本数据类型和引用数据类型。
而引用数据类型赋值时保存的只是一个指针,指向存储在堆中的对象.所以两个变量实际上是引用的同一个对象,当其中一个改变时,另一个当然会改变了.
解决方法就是进行深度复制,因为拷贝字符串时会开辟新的存储地址,这样就切断了该对象的指针与其指向地址的联系. ( 听说如果拷贝对象包含正则表达式,函数,或者undefined等值时,深度烤贝就会失效 )

 this.labelListData = JSON.parse(JSON.stringify(this.editLabelList));
发布了10 篇原创文章 · 获赞 0 · 访问量 315

猜你喜欢

转载自blog.csdn.net/half_sugar/article/details/102897429