Object Shorthand Improvements S0
中文标题:对象简写改进
提案概览
- 阶段: Stage 0
- 状态: 进行中
- ECMAScript 版本: —
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案旨在扩展对象初始化和解构赋值中的对象简写语法,以支持属性访问器。目前,简写赋值仅允许标识符,但该提案将允许 { o.x } 和 ({ a.x } = o) 这样的表达式。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
ECMAScript 简写属性赋值改进
本提案为对象字面量初始化和对象赋值模式引入了新的简写赋值形式,允许在简写赋值中使用属性访问器,而不仅仅是标识符。
状态
阶段: 0
提案发起人: Ron Buckton (@rbuckton)
更多信息请参见 TC39 提案流程。
作者
- Ron Buckton (@rbuckton)
提案
对象初始化器
当在对象初始化器中使用属性访问器时,访问器的属性名称用作对象的属性名称,属性访问器的值用作对象中该属性的值。以下语法转换说明了这一点:
其行为等同于:
除了点号表示法外,也可以使用方括号表示法。与点号表示法类似,方括号表示法的表达式用作对象的属性名称。以下语法转换说明了这一点:
其行为(大致)等同于:
请注意,实际实现将依赖 GetReferencedName,而不是重复上述表达式 "x"。
解构赋值
当在解构赋值中使用属性访问器时,访问器的属性名称用作赋值属性的属性名称,而属性访问器本身用作赋值目标。以下语法转换说明了这一点:
其行为等同于:
除了点号表示法外,这里也可以使用方括号表示法。使用方括号表示法时,方括号表示法的表达式被求值并用作赋值属性的属性名称,而属性访问器本身用作赋值目标。以下语法转换说明了这一点:
其行为(大致)等同于:
请注意,实际实现将依赖 GetReferencedName,而不是重复上述表达式 "x"。
语法
资源
待办事项
以下是推进 TC39 提案流程各个阶段的高级任务列表: