热门搜索 :
考研考公
您的当前位置:首页正文

实现 plus(1)(2)...(n) 其中n自定义

来源:东饰资讯网
function plus(num) {
  // define add function
  var adder = function() {
    // 闭包特性
    var _args = [];

    // 让其可以链式调用 参数添加以后 返回当前函数
    var _adder = function _adder() {
      // 将 _adder的所有参数添加进 _args中 这里用到了闭包的性质
      [].push.apply(_args, [].slice.call(arguments));
      return _adder;
    };
    // 在toString的是 再进行所有的求和操作 之前的操作都只保留参数
    _adder.toString = function() {
      return _args.reduce(function(a, b) {
        return a + b;
      });
    }

    return _adder;
  } // end adder function

  return adder()(num);
}


console.log(plus(1)(2)(3).toString())
console.log(plus(1)(2)(3)(4).toString())
console.log(plus(1)(2)(3)(5).toString())
console.log(plus(1)(2)(3)(5)(6).toString())
Top