嗨我需要帮助编写一个javascript代码 我想使用函数更改动态变量,我的代码就像这样
var a=0;
var b=0;
function UpdateValue(Variable,x)
{
Variable=x;
}
UpdateValue(a,2);
UpdateValue(b,3);
console.log("a: ", a); //returns a: 0
console.log("b: ", b); //returns b: 0
我总是得到0结果。变量不会更新 什么是我的功能的正确代码?
答案 0 :(得分:0)
这不起作用,因为原语在javascript中按值传递。因此,如果您作为参数传递,在函数中更改它将不会影响传递的参数。
您应该使用数组或对象,因为它们通过引用传递。
喜欢吼叫
var a=[0];
var b=[0];
function UpdateValue(Variable,x)
{
Variable[0]=x;
}
UpdateValue(a,2);
UpdateValue(b,3);
console.log("a: ", a); //prints a: [2]
console.log("b: ", b); //prints b: [3]
答案 1 :(得分:0)
不可能。函数中的参数将引用与函数调用中的参数相同的值;函数无法在调用者中重新定义变量。如果变量是对象(或数组),则可以更改变量 contents 。
您应该重新考虑为什么需要在内部上下文中重新分配外部上下文变量。这闻起来像XY problem。