Javascript add extra argument

后端 未结 11 1199
暖寄归人
暖寄归人 2021-02-06 22:02

Lets take a look at this code:

var mainFunction = function() {
  altFunction.apply(null, arguments);
}

The arguments that are passed to \"mainF

11条回答
  •  萌比男神i
    2021-02-06 22:16

    //
    //    var
    //        altFn  = function () {}, 
    //        mainFn = prefilled( altFn  /* ...params */ );
    //
    //    mainFn(  /* ...params */  );
    //  
    //        
    function prefilled ( fn /* ...params */ ) { 
         return ( function ( args1 ) { 
    
              var orfn = this;
    
              return function () { 
    
                  return orfn.apply( this, args1.concat( cslc( arguments ) ) );
    
              };
    
         } ).call( fn, cslc( arguments, 1 ) );
    }
    
    // helper fn
    function cslc( args, i, j ) { 
       return Array.prototype.slice.call( args, i, j );
    }
    
    
    // example
    
    var
        f1 = function () { console.log( cslc( arguments ) ); }, 
        F1 = prefilled( f1, 98, 99, 100 );
    
    F1( 'a', 'b', 'c' );
    
    //
    //   logs: [98, 99, 100, "a", "b", "c"]
    //
    //
    

提交回复
热议问题