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

为何自定义传入的noteTitle参数在函数中无法生效?求解析与方案

问题原因

你传入的noteTitle参数没生效,核心原因是代码里用了点语法直接写死属性名:notes.noteTitle = message。这里的noteTitle是字符串字面量,会被当成对象的固定属性名,而不是你传入的参数变量——说白了,你传的参数根本没被用到,函数一直在给notes对象的noteTitle这个固定属性赋值,不管你传什么标题参数都没用。

替代方案

方案1:动态修改传入的对象

把点语法改成方括号语法,用动态属性名引用传入的noteTitle参数:

const createNote = (noteTitle, message, notes) => {
  notes[noteTitle] = message;
  return notes;
};

方案2:创建独立新笔记对象(更推荐)

如果你的需求是生成新笔记而非修改原有对象,直接返回新对象避免副作用:

const createNote = (noteTitle, message) => {
  return { [noteTitle]: message };
};
方案优势
  • 方案1:真正利用了传入的noteTitle参数,实现了动态设置对象属性的需求,完全匹配你设计这个函数的初衷。
  • 方案2:避免了直接修改外部传入的notes对象(无副作用),函数逻辑更纯粹,返回的独立新笔记不会影响原对象,代码更健壮、可维护性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:15:34