柯里化 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複製代碼
相關文章
相關標籤/搜索