【问题标题】:Can Javascript function arguments in the middle of a set of them be omitted?可以省略一组中间的 Javascript 函数参数吗?
【发布时间】:2012-06-30 05:19:22
【问题描述】:

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

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

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

谢谢你,stackoverflow 的粉丝们!

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

【问题讨论】:

标签: javascript function arguments


【解决方案1】:

试试看。

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

所以不,你不能只使用双逗号。

【讨论】:

    【解决方案2】:

    很遗憾,不允许使用双逗号,这会引发语法错误。

    【讨论】:

      【解决方案3】:

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

      function foo(a, b, c, d, e) {
      
      }
      
      foo.apply(foo, [1,,,,5]);
      

      这里a 将是1e 将是5。所有其他参数将为undefined

      【讨论】:

        猜你喜欢
        • 2014-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-09
        • 2015-12-05
        • 1970-01-01
        • 2021-02-20
        相关资源
        最近更新 更多