【问题标题】:How to pass the nth optional argument without passing prior arguments in JavaScript functions? [duplicate]如何在 JavaScript 函数中传递第 n 个可选参数而不传递先前的参数? [复制]
【发布时间】:2019-07-15 13:10:46
【问题描述】:

假设我们有一个如下所示的函数,我想为第一个参数a 使用默认值,为第二个参数b 使用自定义值。

const func = (a = 1 , b = 2) => {
    console.log("a is equal to " + a, " and b is equal to " + b)
}

我只想为参数 b 传递一个值。像这样:

func(b : 7);
// I want it to print: a is equal to 1 and b is equal to 7

如何在 JavaScript 中实现它?

【问题讨论】:

  • 如果您不想更改函数签名,则需要像这样调用它func(undefined, 7)

标签: javascript function arguments


【解决方案1】:

您修改您的函数以接收一个对象,然后在该对象内您还可以为某些属性(如 a 和 b)定义默认值。

const func = ({ a = 1, b = 2 }) => {
  console.log("a is equal to " + a, " and b is equal to " + b)
}

func({b: 3})

【讨论】:

  • 那么像server.listen(port, hostname, backlog, callback) 这样的方法呢?它的所有参数都是可选的。
  • 除非函数可以接收一个对象,您可以在其中指定要传递的参数的名称,否则无法使用命名参数。
【解决方案2】:

尝试使用 RORO 模式,将对象传递给函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多