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複製代碼