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

从变量名创建对象属性遇异常:预期myProperty却得到b,如何修复?

解决对象属性名用变量赋值的问题

嘿,我猜你肯定是没用到ES6的计算属性名语法!这是个新手常踩的小坑,我来给你说清楚怎么回事。

首先,你之前的写法大概是这样的对吧?

const b = 'myProperty';
const obj = { a: 1, b: 2 };
console.log(obj); // 结果是 {a: 1, b: 2}

为啥会这样?因为在对象字面量里直接写b: 2的时候,JavaScript会把b当成一个普通的字符串属性名,而不是去读取变量b的值。

要让变量的值成为属性名,你需要用方括号把变量包起来,也就是计算属性名的写法:

const b = 'myProperty';
const obj = { a: 1, [b]: 2 };
console.log(obj); // 这时候就会输出 {a: 1, myProperty: 2}

这个方括号的作用就是告诉JS:“去把这个变量的值拿过来当属性名”。而且不止变量,你甚至可以在方括号里放表达式,比如[b + '_test']: 3,它会先计算表达式的结果,再作为属性名。

下次遇到动态设置属性名的场景,记得用这个方括号语法就好啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:59:46