【问题标题】:How to specify (default) parameters in function call without using undefined如何在不使用未定义的情况下在函数调用中指定(默认)参数
【发布时间】:2019-12-16 13:47:16
【问题描述】:

在一个带有默认参数的 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

【问题讨论】:

    标签: javascript parameters arguments parameter-passing default


    【解决方案1】:

    首先一个好的做法是将可选参数移到最后。

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

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

    【讨论】:

    • 在这个例子中,我将如何指定一个值来改变而让其他值保持不变?例如,如果我想要1 5 3 的输出,我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2014-03-28
    • 2021-10-17
    • 1970-01-01
    相关资源
    最近更新 更多