尝试为数组(或变量)提供新值时遇到问题。在函数内部,我想在执行函数时给参数指出的变量赋予一个新的值。JS在函数中使用变量名称而不是它们的值
var a = 0;
var b = 0;
function editvariable (target, newValue) {
var target = newValue;
}
editvariable(a, 4);
在这个例子中,我要的a
值更改为4,但只会让一个名为目标的新功能。
尝试为数组(或变量)提供新值时遇到问题。在函数内部,我想在执行函数时给参数指出的变量赋予一个新的值。JS在函数中使用变量名称而不是它们的值
var a = 0;
var b = 0;
function editvariable (target, newValue) {
var target = newValue;
}
editvariable(a, 4);
在这个例子中,我要的a
值更改为4,但只会让一个名为目标的新功能。
a
被定义出来的功能范围,所以你可以简单地设置a = newValue
但是你为什么要做出什么简单的赋值语句可以做一个函数?
如果你真的想有target
重新分配a
,你必须返回结果。
var a=0;
var b=0;
function editvariable(target,newValue){
target=newValue;
return target; //return the assignment
}
a = editvariable(a,4)
我猜他们可能也想做'editvariable(b,4)' – 2014-09-24 18:58:41
最有可能,但是它是开销。无论哪种方式,在函数内分配变量仍然有效,但该参数不是原始变量的引用。他将不得不退还,并给它分配'a' – 2014-09-24 19:01:04
'a = 4'?我觉得你可能有更广泛的目标,但是没有更多的细节,很难说。 – 2014-09-24 18:56:12
原始变量不是通过引用传递,而是仅通过值传递,这意味着您无法像这样传递变量并更改原始文件等。 – adeneo 2014-09-24 18:56:23
您也可以仅返回值并将其分配回变量。因此,'a = editvariable(a,4)'和'editvariable'内需要'返回目标'(或'newValue',因为它们是相同的)。当然,这只不过是简单的赋值而已,但我认为你有一个(真正的)函数不仅仅是指定一个值。 – 2014-09-24 18:59:29