javascript - 指定第二个默认参数 Javascript

标签 javascript ecmascript-6

假设我有一个包含三个参数的函数,其中 2 个参数具有默认值:

function f(a, b=2, c=3){
    console.log(a, b, c)
}

如果我对 b 非常满意的值,有没有办法调用 f并为 c 指定一个值直接

在 Python 中我会做类似 f(1, c=5) 的事情?

用例:如果我不知道b的默认值,或者如果有更多的参数,那么不能做这样的事情会很麻烦

最佳答案

is there a way to call f and specify a value for c directly?

不,JavaScript 没有那种命名参数。

您可以通过给 undefined 使用 b 的默认值来调用 f:

f(1, undefined, 5);

function f(a, b = 2, c = 3){
    console.log(a, b, c)
}
f(1, undefined, 5);

或者,您可以不同地定义 f:让它接受一个对象,然后将其解构为参数,然后用一个对象调用它:

function f({a, b = 2, c = 3}){
    console.log(a, b, c)
}
f({a: 1, c: 5});

如果您希望在没有对象的情况下调用它是有效的(上面的错误),请为解构参数提供默认值:

function f({a, b = 2, c = 3} = {}){
// -------------------------^^^^^
    console.log(a, b, c)
}

关于javascript - 指定第二个默认参数 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53376295/

相关文章:

node.js - 解构在 OSX 上有效,但在 Linux 上失败

javascript - this.value 和 $(this).val() 有什么区别?

javascript - 在一个页面中由 JavaScript 设置的 Cookie 不显示在另一个页面中

javascript - 检查变量是否已填充并将其传递给条件函数

javascript - 异步/等待错误被绑定(bind)函数吞没

javascript - 如何为 JScript 中的按钮分配操作?

javascript - 如何阻止 babel 为包含与 javascript 关键字相同名称的方法名添加前缀 "_"

javascript - 我如何在 Jest 中模拟这个方法链?

javascript - 使用 ES6 静态函数时得到 "no such method"