You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中实现调用函数时按param=value形式指定参数?

问题原因

JavaScript 原生不支持位置无关的命名参数传参语法。你写的 sum(b=2,c=3) 中的 b=2、c=3 本质是普通赋值表达式,表达式的返回值就是等号右侧的值,会按调用时的位置顺序依次传给函数参数,实际执行逻辑等价于:

// 先执行赋值表达式得到返回值,非严格模式下还会意外创建全局变量b、c
const arg1 = (b=2); // 返回值为2
const arg2 = (c=3); // 返回值为3
// 按位置顺序传参
sum(arg1, arg2); 

此时函数sum的三个参数取值为:a=2、b=3、c=undefined,和你预期的按参数名赋值逻辑完全不符。

实现指定参数名传参的方案

JavaScript 通用的命名参数实现方案是对象参数+解构语法,修改方式如下:

  • 第一步:调整函数定义,把参数改为对象解构形式
    可以同时设置参数默认值,末尾加 = {} 是为了支持不传任何参数调用时不会抛出解构错误:
    // 示例同时设置了参数默认值,不需要可以去掉
    function sum({a = null, b = null, c = null} = {}){
      return `${c},${a},${b}`
    }
    
  • 第二步:调用函数时传入一个对象,键名对应你要指定的参数名,无需在意传参顺序
    output.innerHTML = sum({b:2, c:3})
    

修改后参数取值为 a=null(按默认值)、b=2、c=3,符合预期需求。

内容的提问来源于stack exchange,提问作者Lama's

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:03