对于函数的柯里化(currying)应该不陌生,简单来说 Currying 技术是一种通过把多个参数填充到函数体中,实现将函数转换为一个新的经过简化的(使之接受的参数更少)函数的技术。当发现正在调用同一个函数时,并且传递的参数绝大多数都是相同的,那么用一个Curry化的函数是一个很好的选择。
下面利用闭包实现一个curry化的加法函数, 我们简单理解一下 curry 化:
function add(x, y){
if(x && y) return x + y;
if(!x && !y) throw Error("Cannot calculate");
return function(newx){
return x + newx;
};
}
add(3)(4); //7
add(3, 4); //7
var newAdd = add(5);
newAdd(8); //13
var add2000 = add(2000);
add2000(100); //2100
网友评论