javascript 柯里化

时间:2022-12-11 21:02:06

先看一下代码

 function add(){
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum;
}
function bigAdd(fn){
//获取除了第一个参数外的其他参数(这里是除了fn)
var args=[].slice.call(arguments,1);
return function(){
var innerArgs=args.concat([].slice.call(arguments));
return fn.apply(null,innerArgs);
}
}
16
var n=bigAdd(add,2,3,4,5)(100,100,100,100);
console.log(n);

柯里化的原理如上.具体有什么用途,我目前没用到,但是感觉有一天用到的话,这种方式也是很灵活的.