属性简写适用于对象字面量中属性名与已声明变量名完全一致时,引擎自动赋值;变量须已声明且可访问,不支持表达式或重命名,动态属性需用计算属性。

直接写变量名,不用重复写“属性名: 变量名”。
属性简写的适用条件
当对象字面量中某个属性名和当前作用域里已声明的变量(或函数参数)名称完全一致时,就能启用简写。JavaScript 引擎会自动把该变量的值赋给同名属性。
- 变量必须已声明且在当前作用域可访问,比如
const name = 'Alice' - 不能是未声明变量,否则报
ReferenceError - 若同时存在同名
let/const变量和函数参数,会因重复声明报错
常见使用场景
最常出现在函数返回对象、构造配置项、解构后重组等环节。
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
- 函数返回:
function getUser(id, role) { return { id, role }; } - 表单数据收集:
const { username, email } = formData; const payload = { username, email }; - 组件 props 透传:
return <modal visible title onclose></modal>;
注意和限制
简写只解决“同名赋值”,不改变变量本身,也不支持表达式或重命名。
- 不能写
{ name: fullName }简化为{ fullName }—— 属性名仍是fullName,不是name - 要动态生成属性名,得用计算属性:
{ [prefix + 'Id']: id } - 要改属性名,仍需完整写法:
{ userName: username }
对比示例更直观
ES5 写法冗长重复:
const name = 'Tom'; const level = 5;const player = { name: name, level: level };
ES6 简写清爽直接:
const name = 'Tom'; const level = 5;const player = { name, level };

















