定义:把接收多个参数的函数转化成接收第一个参数为参数的函数,返回一个以下一个参数作为参数的函数。
如:f(x,y,z),转化成f(x)(y)(z)
场景应用:
//实现多个数相加
function add(){
//let args=arguments;//argements是对象而不是数组
//所以需要把它转成数组
let args=Array.prototype.slice.call(arguments);
let inner=function(){
args.push(...arguments);//...展开运算
return inner; //调用递归,实现多个参数相加
};
inner.toString=function(){
return args.reduce((pre,cur)=>pre+cur)
}
return inner;
}
console.log(add(1,3)(2)(2).toString())