javascript - 如何在函数调用中指定(默认)参数而不使用 undefined

标签 javascript parameters arguments parameter-passing default

在具有默认参数的 Javascript 函数中,是否有任何方法可以通过名称(而不是函数定义中的顺序)来指定传递到函数调用的参数?

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

foo(); // => 1 2 3

foo(5); // => 5 2 3

foo(b = 5); // => 5 2 3

如您所见,只有当我插入 undefined 代替前面的参数时,我才能更改我想要的默认参数:

foo(undefined, b = 5); // => 1 5 3

// which happens to be the same as

foo(undefined, 5); // => 1 5 3

我知道这在 Python 中是可能的:

def foo(a = 1, b = 2, c = 3):
    print(a, b, c)

foo(b = 5) # => 1 5 3

有没有办法在 Javascript 中执行此操作而不插入 undefined

最佳答案

首先,一个好的做法是在末尾移动可选参数。

在您的情况下,您可以将可选参数放入对象中,指定您传递的对象的哪个属性,如下所示:

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

foo();

foo({b:5})

关于javascript - 如何在函数调用中指定(默认)参数而不使用 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419535/

相关文章:

javascript - 找不到模块 : error when deployed on Heroku

optimization - 支持向量机的停止准则

jquery删除url中问号后的所有内容

c - 在 Objective C 中声明方法的参数时出错

javascript - 使用 jQuery,我想知道 Gmail 的新电子邮件组合 iframe 的正文中何时发生事件

javascript - 将选定的行值发送到 Controller MVC 时出现问题

javascript - 在 Javascript 中的参数中分割数组

javascript - 为什么空参数没有被识别为未定义?

function - 通缉 : Matlab example of an anonymous function returning more than 1 output

javascript - nodejs 上的 heredoc