function curryingAdd(){
//数组保存所有参数
var args = [arguments[0]]
//利用闭包收集所有参数
var adder = function(){
if(arguments[0] !== undefined){
args.push(arguments[0])
}
return adder
}
// 利用toString隐式转换的特性,当最后执行时隐式转换,并计算最终的值返回
adder.toString= function () {
return args.reduce(function (a, b) {
return a + b;
});
}
return adder
}
console.log(curryingAdd(1)(2)(4)(5)())