函數式編程curry的概念: 只傳遞給函數一部分參數來調用函數,而後返回一個函數去處理剩下的參數。編程
var add = function(x) { return function(y) { return x + y ; } ; } ; var increment = add(1) ; increment(1)//2 var addTen = add(10) ; addTen(10)//20
咱們能夠一次性的調用函數,也能夠每次值傳入一個參數分屢次調用。app
簡單說curry就是對高階函數(就是一種對過程的抽象 參考map它就是一個抽象的過程)的降階處理。好比 function(arg1,arg2)變成function(arg1)(arg2)。function(arg1,arg2,arg3)變成function(arg1)(arg2)(arg3)....以此類推。反curry就是反過來!其中有個用途能夠用來分離this 好比 函數式編程
fn = function(x1,args){ x.prototype.g.apply(x1,args) }