《精通JavaScript》真是一本好书,里面讲解了很多鲜为人知的JavaScript的知识与技巧。今天在看时,发现一个JavaScript Curry化的技术,很实用,现在记录下。
本质上,Curry化是一种通过把多个参数填充到函数体中,实现将函数转换为一个新的经过简化的(使之接受的参数更少)函数的技术。
下面是书中一个简单的例子,它通过向另外一个函数预填参数而创建了一个新函数。
// 数字求和函数的函数生成器
function addGenerator(num){
// 返回一个简单的函数,求两个数字的和,其中第一个数字来自生成器
return function(toAdd){
return num + toAdd;
};
}
// addFive 现在包含一个接受单一参数的函数,这个函数能求得 5 加上该参数的和
var addFive = addGenerator(5);
// 这里我们可以看到,在传入参数为 4 时,addFive 函数的结果是 9
alert(addFive(4)==9);
Pingback 引用通告: curry JavaScript at Redky