You need to enable JavaScript to run this app. JavaScript中addExpense函数description参数未被读取的原因排查
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中addExpense函数description参数未被读取的原因排查

问题核心原因

当前代码中,向expenses数组推入对象的键值绑定逻辑存在错误。
代码里写的{description: amount}是JS对象字面量的标准写法,含义为:新建对象的description属性,取值为传入的amount参数。整个流程完全没有读取函数第一个形参description的值,也没有为新对象设置存储金额的对应属性,因此运行后才会出现expenses: [ { description: 15 } ]的结果。

错误细节拆解
  • 出错位置:this.expenses.push({description: amount})
  • 预期目标是给新对象绑定两个属性:description存储传入的消费描述,amount存储传入的消费金额
  • 现有写法完全不符合预期:既丢弃了传入的描述参数,又把金额值错误绑定到了description属性上
修正方法

只需要调整push时传入的对象字面量,同时完成两个属性的绑定即可。ES6支持属性名与变量名同名时的简写,写法更简洁:

const account = {
    name: 'John Doe',
    expenses: [],
    addExpense: function (description, amount) {
        this.expenses.push({description, amount}) 
    }
}

account.addExpense('item', 15.00)
// 修正后account.expenses的值为 [{ description: 'item', amount: 15 }]

如果使用传统ES5写法,等价形式为this.expenses.push({description: description, amount: amount}),运行效果完全一致。

内容的提问来源于stack exchange,提问作者Louis S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 11:15:03