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

标签 javascript function default-parameters

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

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

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

例如,当调用 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 的值。此外,通过调用该函数,还创建了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);

关于javascript - 在 JavaScript 中调用函数时正确指定参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56676677/

相关文章:

javascript - 尝试练习如何处理数组

C 默认参数

javascript - 用户取消离开后如何保持在同一页面而不刷新?

javascript - jQuery UI 布局 - 是否可以在加载后更改 Pane 的属性?

javascript - Promise.all.then 在各个 Promise 完成之前执行

javascript - 即使有一个单例类管理购物车状态,购物车中的元素总数也不会刷新

c - TC 程序使用函数显示 20 个整数值中的最大值

javascript - 如何通过jQuery的点击函数获取用户输入

scala - 为什么无法指定 Scala varargs 参数的默认值?

default-parameters - 具有多个子句的命名函数的 Elixir 默认参数