- 首页 > it技术 > >
实现|实现 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())
推荐阅读