java基礎資料結構之Collection
阿新 • • 發佈:2020-08-13
柯里化函式
什麼是柯里化函式?
- 使用閉包,函式內部對傳進去的資料進行儲存,等到滿足條件後,通過回撥函式對儲存的資料進行統一處理
柯里化函式的目的
- 可以不間斷的多次傳入資料,函式不執行,等到滿足一定條件後,統一執行
柯里化函式的展示
function curry(fn){ var arr=[]; //私有變數 return function(){ if(arguments.length>0){ arr=arr.concat(Array.from(arguments)); //資料的儲存 return arguments.callee; //返回函式自身 實現連綴寫法的效果 }else{ return fn.apply(null,arr); //通過apply來傳參,回撥函式中Array.from() 才能對資料進行操作,直接傳參,回撥函式中Array.from()後變成二維陣列 } } } function fns(){ return Array.from(arguments).reduce((value,item)=>value+=item); } var sum=curry(fns); //閉包 返回的函式賦值給全域性變數 var s=sum(1)(2,3)(4,5,6)() console.log(s);