Friday, July 26, 2019

javascript - Pass unknown number of parameters to JS function




A pattern in some javascript libraries is to be able to pass any number of parameters to a function:



functiona(param1)
functiona(param1, param2, param3)

functiona(param1, param2)


I have an array of unknown length, and I'd like to pass all the array items as parameters to a function like functiona(). Is this possible? If so, what is the syntax for doing this?


Answer



What you want is probably Function.prototype.apply().



Usage:



var params = [param1, param2, param3];

functiona.apply(this, params);


As others noted, functiona declaration may use arguments, e.g.:



function functiona()
{
var param1 = this.arguments[0];
var param2 = this.arguments[1];
}



But it can use any number of normal parameters as well:



function foo(x, y)
{
console.log(x);
}
foo.apply(this, [10, 0, null]); // outputs 10


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...