1. 程式人生 > 實用技巧 >HTML5CSS3前端入門教程---從0開始通過一個商城例項手把手教你學習PC端和移動端頁面開發第10章有路網PC端主頁實戰整合

HTML5CSS3前端入門教程---從0開始通過一個商城例項手把手教你學習PC端和移動端頁面開發第10章有路網PC端主頁實戰整合

柯里化函式

什麼是柯里化函式?

  • 使用閉包,函式內部對傳進去的資料進行儲存,等到滿足條件後,通過回撥函式對儲存的資料進行統一處理

柯里化函式的目的

  • 可以不間斷的多次傳入資料,函式不執行,等到滿足一定條件後,統一執行

柯里化函式的展示

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);