通过引用传递变量的不同方法?

问题描述 投票:0回答:1

我想将变量传递给函数并让函数更改值。

我知道我可以将其作为一个对象来做到这一点,但我想知道是否有某种我没有想到的方法可以做到这一点。

这就是我想做的,但它当然不会按照我想要的方式工作:

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);

还有比这些更好的选择吗?

javascript
1个回答
0
投票

这可能不是您正在寻找的,但也许可以尝试以下操作:

function test1(vari) {
    return vari += 2;
}

var myvar1 = test1(myvar1);

console.log(myvar1);
© www.soinside.com 2019 - 2024. All rights reserved.