vue

【转】vue改变一个变量值关联的变量也变换解决方法(引用和传值)

2020-06-12  本文已影响0人  长夏丶低吟

首先说下引用和传值的条件区别

引用:

object(对象)    array(数组)这两个类型进行等于赋值的时候实际上是进行的引用,源数据改变后目标数据也就发生了变换

传值:

  string number boolean这几个类型进行赋值的时候是进行的传值,并不会跟着源数据的变换目标数据发生改变

比如

data() {

    return {

      dataForm1:{

        number:1

      },

      dataForm2:[]

    }

};

this.dataForm2.push(this.dataForm1);

console.log( this.dataForm2[0].number );//1

这个时候dataForm2中添加dataForm1打印出来的是没有问题的

this.dataForm1.number =120;

this.dataForm2.push(this.dataForm1);

console.log( this.dataForm2[0].number );//120

console.log( this.dataForm2[1].number );//120

然后在添加一条修改过的dataForm1会发现之前添加的第一条也发生变化了、

这里是因为dataForm2是在引用dataForm1的值而不是传递

解决方法

this.dataForm2=JSON.parse(JSON.stringify(this.dataForm1))

————————————————

版权声明:本文为CSDN博主「前端恶霸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_41916005/java/article/details/86008022

上一篇 下一篇

猜你喜欢

热点阅读