curryes6
柯里化是一种“预加载”函数的能力,经过传递一到两个参数调用函数,就能获得一个记住了这些参数的新函数。从某种意义上来说,这是一种对参数的缓存,是一种很是高效的编写函数的方法:
缓存
普通函数写法:bash
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); // 3
addTen(2); // 12复制代码
对于加法这种极其简单的函数来讲,柯里化并无什么用。函数
还记得上面的checkAge函数吗?咱们能够这样柯里化它:ui
var checkage = min => (age => age > min);
var checkage18 = checkage(18);
checkage18(20);
// =>true复制代码