对象字面量增强语法含属性简写、方法简写和计算属性名三种形式:属性简写省略冒号及右侧变量名;方法简写省略function关键字;计算属性名用方括号包裹表达式。

对象字面量增强语法是ES6起就落地的实用特性,识别它不靠关键词,而看三点:是否省略了重复的变量名、是否去掉function关键字、是否用方括号动态生成键名。这些写法直接让模块导出和属性定义更紧凑、意图更清晰。
看属性名是否“自动补全”
当变量已存在,且直接作为对象属性出现,没写冒号和右侧值,就是属性名简写。
- ✅ 常见场景:导出配置、封装参数、构造返回对象
- ✅ 示例:
const title = 'Dashboard'; const layout = 'grid'; export default { title, layout };→ 等价于{ title: title, layout: layout } - ⚠️ 注意:变量必须已声明,否则报
ReferenceError;若值为undefined,属性值就是undefined,不会跳过
看方法是否省略 function 关键字
对象内函数定义没写function,紧跟在键名后加圆括号,就是方法简写。
- ✅ 常见场景:Vuex actions、组件 methods、工具对象行为封装
- ✅ 示例:
export const api = { fetchUser(id) { return fetch(`/users/${id}`); }, handleError(e) { console.error(e); } }; - ⚠️ 注意:this 绑定仍取决于调用方式(非箭头函数),不能写成
fetchUser: () => {},语法不合法
看键名是否包裹在方括号里
键名用[表达式]形式,说明是计算属性名,属于动态生成键的增强写法。
- ✅ 常见场景:按环境拼接 API 路径、按状态生成字段名、构建缓存 key
- ✅ 示例:
const env = 'prod'; export default { [`baseURL_${env}`]: 'https://api.example.com' };→ 得到{ baseURL_prod: 'https://' } - ⚠️ 注意:方括号内必须是有效表达式,不能是纯字符串;若表达式结果为
null或undefined,键名会变成''(空字符串),容易引发意外
组合使用时如何一眼识别
增强语法常叠加出现,识别重点是“结构松动但语义紧密”——没有冗余符号,却能立刻看出数据来源和行为归属。
- ✅ 示例:
const id = 101; const status = 'active'; export default { id, status, update() { /*...*/ }, [`cacheKey_${Date.now()}`]: 'data' }; - ✅ 这里同时用了三种增强:变量简写、方法简写、计算属性名,彼此独立书写,互不干扰
- ⚠️ 不合法写法:
{ [key]: value, method() {}, [otherKey] }中最后的[otherKey]缺值,语法错误










