• 分析
    从标题我们可以知道的是,这个是一个可以接收很多个参数的函数,并且函数的参数之和等于函数运行的结果.所以根据分析我们可以写出如下的一个无限累加的方法
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function add(a){
    function sum (b){
    a = a + b // 利用闭包,将计算的值存储在变量a中
    return sum; // 利用递归实现无限次数的调用自身
    }
    sum.toString = function(){ // 重写sum函数的toString方法,让其返回计算后的值a
    return a;
    }
    return sum; // 第一次调用add函数的时候将sum函数返回,以后每次调用将会采用递归自调用。
    }