可以省略一组Javascript函数参数吗?

时间:2012-06-30 05:19:22

标签: javascript function arguments

你能调用一个Javascript函数,希望让我们说五个参数,并提供让我们说前三个和第五个,但我希望第四个参数不存在,即null或undefined。我想使用的形式是:myfunction(1,2,3,,5);

我无法弄清楚它们之间没有任何内容的“双逗号”是否可以通过“null”或类似的东西传递,但第五个参数没有问题。

你可以调用myfunction(1,2,3),如果函数需要#4和#5,那么这些函数显示为undefined或typeof undefined,就好了。这是中间的一个省略的我遇到了麻烦。

谢谢你,stackoverflow粉丝!

P.S。 MyFunction的(1,2,3,空,5);似乎工作,但这似乎有点ho,只是配对的逗号怎么样?

3 个答案:

答案 0 :(得分:3)

试试吧。

function foo(a, b, c) { return a + b + c; }
foo(1,2,3)
> 6
foo(1,,3)
> SyntaxError: Unexpected token ,
foo(1,null,3)
> 4

所以不,你不能只做双逗号。

答案 1 :(得分:1)

不幸的是,不允许使用双逗号,这会引发语法错误。

答案 2 :(得分:1)

您可以使用apply来调用该方法,而不是调用该方法。这将允许您将参数作为数组传递,并允许您使用所需的语法。

function foo(a, b, c, d, e) {

}

foo.apply(foo, [1,,,,5]);

此处a将为1e将为5。所有其他参数都是undefined