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

    推荐阅读