1. 程式人生 > >js對函式引數的封裝

js對函式引數的封裝

對函式引數的封裝

一個原始函式有n個引數,用wrap對函式進行封裝,生成一個新的函式,當給它傳入引數數量為n的時候,將執行原始函式,否則不執行

//函式封裝
function wrap(func){
    let len=func.length,cache=[]
    return function () {
        cache.push.apply(cache,arguments)
        if(cache.length<len){
            return arguments.callee
        }else{
            return func.apply(null,cache)
        }
    }
}

var func=function (a,b,c) {
    return a+b+c
}

var n=wrap(func)
console.log(n(1)(2)(2))