某些 javascript 库中的一种模式是能够将任意数量的参数传递给函数:
functiona(param1)
functiona(param1, param2, param3)
functiona(param1, param2)
我有一个长度未知的数组,我想将所有数组项作为参数传递给像 functiona()
这样的函数。这可能吗?如果是这样,执行此操作的语法是什么?
最佳答案
你想要的可能是Function.prototype.apply()
.
用法:
var params = [param1, param2, param3];
functiona.apply(this, params);
正如其他人指出的,functiona
声明可以使用 arguments
,例如:
function functiona()
{
var param1 = this.arguments[0];
var param2 = this.arguments[1];
}
但它也可以使用任意数量的普通参数:
function foo(x, y)
{
console.log(x);
}
foo.apply(this, [10, 0, null]); // outputs 10
关于javascript - 向 JS 函数传递未知数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695183/