javascript - 将全局变量传递给函数

标签 javascript scope

为什么下面的代码给我一个 0 而不是 1?我希望我的函数更改在函数外部声明的变量,但我不想在函数声明中指定变量。

that = 0;

function go(input) {
    input++;
}

go(that);

console.log(that);

最佳答案

正如 Oriol 所回答的那样,它不起作用,因为该变量是按值传递的,因此您没有更改“that”变量。解决方法是传递变量名称:

that = 0;

function test(input) {
    window[input]++;
}

test("that");

console.log(that); // 1

关于javascript - 将全局变量传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178728/

相关文章:

javascript - 循环内的 AJAX 调用

Python Tkinter、lambda 和回调

javascript - 如何从内部函数中获取值

C# foreach 变量作用域

tensorflow - 如何复用LSTM层和变量范围内的变量(注意力机制)

javascript - 单击按钮后的 bootstrap/JS/Ajax 获取表单以更改图像

javascript - 想在较小的窗口中保持下拉菜单的状态

javascript - 如何改变关于:newtab的背景

javascript - 如何在 Context 内的 useEffect Hook 中传递依赖项

xpath - xpath多个范围:从多个树中选择数据