如何将变量传递给函数并返回值?

时间:2014-02-06 07:50:30

标签: javascript return-value

我想在我传递的变量中添加一个数字并将其返回到原始函数。因此它应该记录1,然后记录2,而不是两个1。

http://jsfiddle.net/E2JnM/

function go(){
  var num = 1; 
  console.log(num);
  addNum(num);
  console.log(num);
};

function addNum(num){
  num = num + 1; 
  return num; 
}

go();

3 个答案:

答案 0 :(得分:3)

您需要获取返回值,因为您的变量是int并且是按值传递的。当您通过值将变量传递给a函数时,一旦离开函数范围,对num的更改结果将不会更改。

function go(){
  var num = 1; 
  console.log(num);

  // Need to store the return value of `addNum` for the result to persist.
  num = addNum(num);
  console.log(num);
};

function addNum(num){
  num = num + 1; 
  return num; 
}

go();

这里还有一个jsFiddle上面的变化:http://jsfiddle.net/LCF4M/1/

答案 1 :(得分:3)

num = addNum(num);应该这样做

答案 2 :(得分:2)

您必须将返回值分配给变量

简短回答:

num = addNum(num);

完整答案:

function go(){
  var num =1; 
  console.log(num);
  num = addNum(num);
  console.log(num);
};

function addNum(num){
  num = num + 1; 
  return num; 
}
go();

使用全局变量(不推荐)回答:

function go(){
  num = 1; // omit var keyword to define global variable
  console.log(num);
  addNum();
  console.log(num);
};

function addNum(){
  num = num + 1; 
}
go();