0

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

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

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

谢谢你,stackoverflow 的粉丝们!

ps myfunction(1,2,3,null,5); 似乎可行,但这似乎有点做作,只有成对的逗号怎么样?

4

3 回答 3

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

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

于 2012-06-30T05:22:34.623 回答
1

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

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

}

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

这里a将会1,并且e将会5。所有其他参数将是undefined.

于 2012-06-30T07:18:36.500 回答
1

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

于 2012-06-30T05:25:19.797 回答