<div v-for="item of list">
<div @click="PromptSetValue(item.it)"></div>
function PromptSetValue(e){
var text = prompt();
e = text;
}
<div v-for="item of list">
<div @click="PromptSetValue(item)"></div>
function PromptSetValue(e){
var text = prompt();
e.it = text;
}
PromptSetValue(list, 'it')
function PromptSetValue(list, key){
var text = prompt();
list[key]= text;
}
红米K30 Pro(变焦版)
这个和 Vuejs 无关,和 js 引用类型传值有关系
小米MIX2s(白)
按值传递时,函数的形参是被调用时所传实参的副本。修改形参的值并不会影响实参。
按引用传递,函数的形参接收实参的隐式引用,而不再是副本。这意味着函数形参的值如果被修改,实参也会被修改。同时两者指向相同的值。
所以当你传递 item.it 时,获得的是一个基本类型值的拷贝副本。而当你传递 item 时,获得的是 item 对象的引用。
这个应该可以回答你的疑惑:
JS基础之传参(值传递、对象传递)
@淡然,因为
js
没法引用对象的键?