我确信这很简单,但我似乎无法让这个工作得恰到好处.这是我的代码:
var zero = 10;
function some(elem, num) {
return elem += num;
}
console.log(some(zero, 10));
console.log(some(zero, 10));
console.log(some(zero, 10));
Run Code Online (Sandbox Code Playgroud)
根据我的理解,我期待变量zero每次增加10 ..所以,它将是10,20和30.相反,我一直得到10.显然,这是不对的.
我的问题是,我zero每次如何将变量增加10并将该值保存回变量zero?
JavaScript按值传递,因此修改传递的值不会对调用者的变量产生任何影响.您需要使用返回值:
var zero = 10;
function sum(elem, num) {
return elem + num;
}
console.log(zero = sum(zero, 10));
console.log(zero = sum(zero, 10));
console.log(zero = sum(zero, 10));
Run Code Online (Sandbox Code Playgroud)