我想在我传递的变量中添加一个数字并将其返回到原始函数。因此它应该记录1,然后记录2,而不是两个1。
function go(){
var num = 1;
console.log(num);
addNum(num);
console.log(num);
};
function addNum(num){
num = num + 1;
return num;
}
go();
答案 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();