在具有默认参数的 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/