add方法需要返回一个方法sum
sum进行参数累加后将sum自己再返回
利用闭包完成对连续调用的参数进行累加
add(1)(2)(3)最后的结果是一个函数,要使add(1)(2)(3)6成立,“”进行比较会进行隐式转换,根据隐式转换规则,需要改写sum的toStrig方法。
function add(){
var total=[...arguments].reduce((a,b)=>a+b);
function sum(){
total+=[...arguments].reduce((a,b)=>a+b);;
return sum;
}
//隐式转换
sum.toString=function(){
return total;
}
return sum;
}