在 JavaScript 中调用函数时正确指定参数值

correctly specify parameter values when calling a function in JavaScript

我有一个函数foo定义如下,

foo = function(a=1,b=2,c=3){
    console.log("your inputs are a:" +a+", b:"+b + ", c:"+c+".")
}

如何使用b的默认值,只在调用函数时指定ac

例如,我想 return 在调用 foo(a=3,c=1)your inputs are a:3, b:2, c:1. 的控制台日志。

然而,通过调用foo(a=3,c=1),控制台日志是your inputs are a:3, b:1, c:3.。 JavaScript 认为 c=1 应该是第二个参数 b 的值,第三个参数 c 没有给出,将使用其默认值 3 .另外,通过调用这个函数,ac的对象也被创建了。

我会传递一个对象,并解构参数:

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);