我有一个函数 foo
定义如下,
foo = function(a=1,b=2,c=3){
console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}
如何使用b
的默认值,只在调用函数时指定a
和c
?
例如,当调用 foo(a=3,c= 1)
。
但是,通过调用 foo(a=3,c=1)
,控制台日志是 your inputs are a:3, b:1, c:3.
。 JavaScript 认为 c=1
应该是第二个参数 b
的值,第三个参数 c
没有给出,将使用它的默认值3
的值。此外,通过调用该函数,还创建了a
和c
的对象。
最佳答案
我会改为传递一个对象,并解构参数:
function foo ({ a=1,b=2,c=3 }){
console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}
foo({ a: 99, c: 99 });
如果可以在没有任何参数的情况下调用该函数,请将默认参数也分配给 {}
:
function foo ({ a=1,b=2,c=3 } = {}){
console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}
foo();
您还可以为缺少的参数显式传递 undefined
:
function foo (a=1,b=2,c=3){
console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}
foo(99, undefined, 99);
关于javascript - 在 JavaScript 中调用函数时正确指定参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56676677/