Javascript JS在函数中使用变量名而不是它们的值
我在尝试给数组(或变量)一个新值时遇到了一个问题。在函数内部,我希望在执行函数时为参数指出的变量指定一个新值Javascript JS在函数中使用变量名而不是它们的值,javascript,variables,Javascript,Variables,我在尝试给数组(或变量)一个新值时遇到了一个问题。在函数内部,我希望在执行函数时为参数指出的变量指定一个新值 var a = 0; var b = 0; function editvariable (target, newValue) { var target = newValue; } editvariable(a, 4); 在本例中,我想将a的值更改为4,但它只会生成一个名为target的新函数。a是在函数范围之外定义的,因此您可以简单地设置a=newValue 但是,为什么要
var a = 0;
var b = 0;
function editvariable (target, newValue) {
var target = newValue;
}
editvariable(a, 4);
在本例中,我想将
a
的值更改为4,但它只会生成一个名为target的新函数。a
是在函数范围之外定义的,因此您可以简单地设置a=newValue
但是,为什么要为一个简单赋值语句所能做的事情创建一个函数呢
如果您确实想让目标
重新分配a
,则必须返回结果
var a=0;
var b=0;
function editvariable(target,newValue){
target=newValue;
return target; //return the assignment
}
a = editvariable(a,4)
只需删除
var
那么a=4
呢?我觉得你可能有一个更广泛的目标要实现,但是如果没有更多的细节就很难说了。原始变量不是通过引用传递的,而是通过值传递的,这意味着你不能像那样传递变量并更改原始变量等。你也可以返回值并将其分配回变量。因此a=editvariable(a,4)
和editvariable
内部,您需要返回目标值(或者newValue
,因为它是相同的)。当然,这仍然只是一个简单的赋值,但我假设你有一个(实)函数,它不仅仅是赋值。我猜他们很可能也想做editvariable(b,4)
,但这是开销。无论哪种方式,在函数中指定变量仍然有效,但参数不是原始变量的引用。他将不得不返回它并为它分配a
,这是一个好的想法,但我不确定这是否会满足OP的要求,因为需要传递值。
var target=newValue;