将全局变量的引用传递给函数

wur*_*est 2 javascript global-variables parameter-passing

是否可以将全局变量的链接发送到 JavaScript 中的函数? 这个答案说不,但我不敢相信,没有解决方法。

我的意思是类似以下内容。它不起作用,但它可以解释我的意思:

var data_1;
var data_2;

fillValue(data_1,"First");
fillValue(data_2,"Second");

function fillValue(link2GlobalVar, value){
    link2GlobalVar = value;
}   

console.log(data_1);
console.log(data_2);
Run Code Online (Sandbox Code Playgroud)

如果能在控制台输出就太好了

First
Second
Run Code Online (Sandbox Code Playgroud)

您知道将全局变量发送到函数并在函数中更改它们的技巧吗?

参见小提琴

Roc*_*mat 5

JavaScript 不像其他语言那样具有引用。当你这样做时,fillValue(data_1,"First");你就是在传递data_1价值。因此,您无法更新,data_1因为在该函数中您拥有的只是数据的副本。

如果这些变量是global,那么您可以按照链接答案的建议进行操作并传递变量名称:

fillValue("data_1", "First");
fillValue("data_2", "Second");

function fillValue(link2GlobalVar, value){
    window[link2GlobalVar] = value;
}
Run Code Online (Sandbox Code Playgroud)

更新:在 JavaScript 中,如果将对象作为参数传递,那么实际上是通过引用传递的。你可以尝试这样的事情:

var datas = {};

fillValue(datas, "data_1", ,"First");
fillValue(datas, "data_2", "Second");

function fillValue(obj, key, value){
    obj[key] = value;
}
Run Code Online (Sandbox Code Playgroud)