Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting an array to a function arguments list [duplicate]

Yes. In current versions of JS you can use:

app[func]( ...args );

Users of ES5 and older will need to use the .apply() method:

app[func].apply( this, args );

Read up on these methods at MDN:

  • .apply()
  • spread "..." operator (not to be confused with the related rest "..." parameters operator: it's good to read up on both!)

A very readable example from another post on similar topic:

var args = [ 'p0', 'p1', 'p2' ];

function call_me (param0, param1, param2 ) {
    // ...
}

// Calling the function using the array with apply()
call_me.apply(this, args);

And here a link to the original post that I personally liked for its readability


app[func].apply(this, args);

You might want to take a look at a similar question posted on Stack Overflow. It uses the .apply() method to accomplish this.