您好,欢迎来到知库网。
搜索
您的当前位置:首页实现 plus(1)(2)...(n) 其中n自定义

实现 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())

Copyright © 2019- zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务