对象字面量增强语法通过属性简写、方法简写和计算属性名,使迭代器配置更紧凑明确:变量名直接作键、省略function关键字定义行为、动态生成上下文标识键,三者可组合使用。

对象字面量增强语法的单行声明特性,能让迭代器助手(如生成器函数的配置、遍历参数封装、yield 控制载荷)更紧凑、意图更明确,避免冗余键值对和重复变量名。
用属性简写收拢固定参数
当多个已声明变量需作为迭代控制参数传入(如 limit、step、offset),直接以变量名列出即可,省去冒号与右侧重复书写。
- ✅ 示例:const limit = 10, step = 2, offset = 0; const payload = { limit, step, offset }; → 等价于 { limit: limit, step: step, offset: offset }
- ⚠️ 注意:变量必须在声明后使用;若某变量为 undefined,对应属性仍会存在且值为 undefined,不可自动跳过
用方法简写内聚行为逻辑
把判断是否继续迭代、计算下一项索引等辅助逻辑,直接定义为对象内的方法,不写 function 关键字,语义更聚焦。
- ✅ 示例:const helpers = { hasNext(i) { return i
- ⚠️ 注意:这类方法中的 this 指向调用时的对象上下文,不是箭头函数;不能写成 hasNext: () => {...},语法非法
用计算属性名动态注入上下文标识
为便于调试或分流处理,可将迭代阶段、环境标识等拼入属性名,实现载荷自描述。
- ✅ 示例:const stage = 'fetch'; const payload = { [`${stage}At`]: Date.now(), limit, hasNext() { ... } }; → 得到 { fetchAt: 1747691520000, limit: 10, hasNext() { ... } }
- ⚠️ 注意:方括号内必须是合法表达式;若 stage 为 null 或 undefined,键名会变成空字符串,易引发读取错误
组合声明提升可维护性
三类增强常共存于同一对象,结构松散但语义紧密,适合一次性构造完整迭代载荷。
- ✅ 示例:const page = 1, size = 20; export const iteratorPayload = { page, size, isLast() { return this.page * this.size >= total }, [`cacheKey_v${version}`]: `iter_${Date.now()}` };
- ⚠️ 注意:计算属性名不能孤立存在,如 { a: 1, [key] } 缺少值,语法报错;每个 [...] 后必须跟冒号与值










