我想将变量传递给函数并让函数更改值。
我知道我可以将其作为一个对象来做到这一点,但我想知道是否有某种我没有想到的方法可以做到这一点。
这就是我想做的,但它当然不会按照我想要的方式工作:
function test1(vari) {
vari = 2;
}
var myvar1 = 1;
test1(myvar1);
console.log(myvar1);
这可行,但我真的不想让所有变量都成为对象:
function test2(vari) {
vari.val = 2;
}
var myvar2 = { val: 1 };
test2(myvar2);
console.log(myvar2.val);
这也可行,但不是一个可接受的解决方案:
function test3(vari) {
eval(vari + ' = 2;');
}
var myvar3 = 1;
test3('myvar3');
console.log(myvar3);
还有比这些更好的选择吗?
这可能不是您正在寻找的,但也许可以尝试以下操作:
function test1(vari) {
return vari += 2;
}
var myvar1 = test1(myvar1);
console.log(myvar1);