我想更改数组数据,在vue方法中更改它。
https://codepen.io/deded007/project/editor/AQyykN
我的问题是如何使用像这样的变量来改变数据
created() {
var a=this.thisisarray;
this.thisisarray=[10];
console.log('a expected '+this.thisisarray+',but '+ a);
}
可以直接使用this.thisisarray
。但是它无法更改变量a
。我的变量仍在查看旧参考。我总是得到{{ 1}}
我想创建一个全局方法并传递我的变量a expected 10,but 9999
来改变它。
a
答案 0 :(得分:1)
数字被复制。一旦复制,t
独立于tom
。
这不是一个虚拟的东西,这是javascript的工作原理。您对引用类型感到困惑。如果有的话
{
tom: { value: 9999 }
}
然后做了
var t = this.tom;
this.tom.value = 10
console.log('t expected '+this.tom.value +',but '+ t.value);
你会得到你期待的东西
现在您已更改了代码:
您现在正在为数据分配新引用,但您的变量仍在查看旧引用。如果你没有分配一个新的数组,只是改变它的内容,你就会得到你期望的结果。
有关进一步说明,请搜索基本类型和引用类型,例如https://docstore.mik.ua/orelly/webprog/jscript/ch04_04.htm