使用内部函数添加数字 - JavaScript

时间:2014-07-10 22:12:23

标签: javascript closures

我正在尝试创建一个函数" sum"使用内部函数添加多个数字。例如 sum(1)(2)将打印3 sum(1)(2)(3)将打印6 sum(1)(2)(3)(4)将打印10等等

我写了以下代码,适用于sum(1)(2)。

function sum(num){
    function add (b){
        console.log(num+=b);
    }
    return add;
}

如何将其扩展为多次调用内部函数?

2 个答案:

答案 0 :(得分:0)

这就是我处理它的方式。 只需一个接受2个数字的函数。添加这两个数字并返回总和。

function sum(num1, num2){
    return num1+num2;
}

console.log(sum(11, 10));

http://jsfiddle.net/PpsjJ/

更新:我认为这就是你想要的。一个接受数字数组的函数,然后将它们全部加在一起。

function sumAll(numbers){
    var result = 0;
    numbers.forEach(function(value, key){
        result += value;
    });
    return result;
}

console.log(sumAll([1,2,3]));

http://jsfiddle.net/PpsjJ/1/

答案 1 :(得分:0)

我认为你正在寻找的是可变数量的参数。那怎么样:

function sum() {
  var total = 0;
  for (var i = 0; i < arguments.length; i++) {
    total += arguments[i];
  }

  alert(total);
}

sum(1,2,3,4,5,6);

打印:21

您可以使用任意数量的参数调用sum