有没有办法在函数体内更改用作函数参数的变量?例如:
var global = 1;
function modifyGlobal(arg) {
arg = 2;
}
modifyGlobal(global);
console.log(global); // Results in 1
显然这段代码不起作用,但我想让console.log(全局)生成2,有效地改变全局变量。
编辑:在作为重复问题链接的答案中,它声明您不能在javascript中执行此操作,但是,在Eloquent JavaScript中,有一个练习要求完成此类事情,并提供正在运行的代码它:
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
// → [5, 4, 3, 2, 1]
因此,在这个例子中,他们将数组传递给它并直接修改该数组。根据询问通过引用传递变量的问题,答案意味着你不能这样做。