是否有一种方法允许“无限”变量的函数在JavaScript?
例子:
load(var1, var2, var3, var4, var5, etc...)
load(var1)
是否有一种方法允许“无限”变量的函数在JavaScript?
例子:
load(var1, var2, var3, var4, var5, etc...)
load(var1)
当前回答
请注意,按照Ken的建议传递带有命名属性的Object会增加分配和释放临时对象到每次调用的成本。通过值或引用传递普通参数通常是最有效的。对于许多应用程序,虽然性能不是关键,但对于某些应用程序,它可能是关键。
其他回答
在函数中使用arguments对象可以访问传入的所有参数。
Ramast指出,最好使用rest参数语法。
function (a, b, ...args) {}
我只是想添加一些很好的属性。args参数
它是一个数组,而不是像参数那样的对象。这允许您直接应用map或sort等函数。 它不包括所有参数,而只包括从它传递的一个参数。例如,函数(a, b,…args)在这种情况下args包含 参数3到arguments.length
另一种选择是在上下文对象中传入参数。
function load(context)
{
// do whatever with context.name, context.address, etc
}
像这样使用它
load({name:'Ken',address:'secret',unused:true})
这样做的好处是,您可以添加任意多的命名参数,并且函数可以根据需要使用(或不使用)它们。
请注意,按照Ken的建议传递带有命名属性的Object会增加分配和释放临时对象到每次调用的成本。通过值或引用传递普通参数通常是最有效的。对于许多应用程序,虽然性能不是关键,但对于某些应用程序,它可能是关键。
是的,就像这样:
function load()
{
var var0 = arguments[0];
var var1 = arguments[1];
}
load(1,2);