将未知数量的参数传递给JS函数

Ale*_*lex 21 javascript arrays function

一些javascript库中的模式是能够将任意数量的参数传递给函数:

functiona(param1)
functiona(param1, param2, param3)
functiona(param1, param2)
Run Code Online (Sandbox Code Playgroud)

我有一个未知长度的数组,我想将所有数组项作为参数传递给函数functiona().这可能吗?如果是这样,这样做的语法是什么?

zlu*_*mer 16

你想要的可能是什么Function.prototype.apply().

用法:

var params = [param1, param2, param3];
functiona.apply(this, params);
Run Code Online (Sandbox Code Playgroud)

正如其他人所指出的,functiona声明可以使用arguments,例如:

function functiona()
{
    var param1 = this.arguments[0];
    var param2 = this.arguments[1];
}
Run Code Online (Sandbox Code Playgroud)

但它也可以使用任意数量的普通参数:

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