先上答案:
function add () {
let args = Array.prototype.slice.call( arguments );
let inner = function (){
args.push(...arguments);
return inner;
}
inner.toString = function() {
return args.reduce (
function (prev, cur){
return prev + cur;
}
);
}
return inner;
}
const result = add(1)(2)(3)(4);
console.log(result.toString());
这个基本实现了不定参数, 比如可以是一个参数a(1) 也可以是n个参数 a(1)(2)(3)...(n)