curry
柯里化是一种“预加载”函数的能力,通过传递一到两个参数调用函数,就能得到一个记住了这些参数的新函数。从某种意义上来讲,这是一种对参数的缓存,是一种非常高效的编写函数的方法:
普通函数写法:
function add(x,y){return x+y}复制代码
//es5写法 var add = function(x) { return function(y) { return x + y; };};复制代码
//es6写法var add = x => (y => x + y);//试试看var increment = add(1);var addTen = add(10);increment(2); // 3addTen(2); // 12复制代码
对于加法这种极其简单的函数来说,柯里化并没有什么用。
还记得上面的checkAge函数吗?我们可以这样柯里化它:
var checkage = min => (age => age > min);var checkage18 = checkage(18);checkage18(20);// =>true复制代码