JavaScript动态生成对象字面量键时报错,求解决方法
JavaScript动态生成对象字面量键时报错,求解决方法
嘿,我太懂你找了一小时的崩溃感!你想创建一个键为otherName值、值为otherValue值的对象,但原来的写法语法不对,所以才会一堆报错。
问题出在对象字面量的动态键名写法上——JavaScript里要把变量作为对象的键名,得用ES6计算属性名的语法,也就是把键名放在方括号[]里面,而不是直接用模板字符串包裹。
给你两种正确的写法:
- 直接用变量作为键名(最适配你的场景):
let temp = { [otherName]: otherValue };
- 如果需要拼接键名(比如给键加前缀),可以在方括号里用模板字符串:
// 示例:给键名加前缀 let temp = { [`user-${otherName}`]: otherValue };
结合你提供的代码,完整的正确版本应该是这样:
const otherName = document.getElementById(`adminPanelManageUserOtherName`).value; const otherValue = document.getElementById(`adminPanelManageUserOtherValue`).value; // 这行是修正后的代码 let temp = { [otherName]: otherValue };
原来的写法{${otherName}: ${otherValue}}之所以报错,是因为对象字面量默认只接受标识符或者固定字符串作为键名,要动态生成键名必须用方括号把变量/表达式包起来,这是ES6之后才支持的标准语法哦~
备注:内容来源于stack exchange,提问作者Simi
相关产品推荐
相关产品推荐

