javascript 柯里化

先看一下代码

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

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

原文地址:https://www.cnblogs.com/zhangfengyang/p/4818282.html