柯里化 curry

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复制代码
相关文章
相关标签/搜索