请问`export default { [PROPERTY](){} }`语法的名称及所属ES版本?
计算属性名(Computed Property Names)详解
嘿,这个语法叫做计算属性名(Computed Property Names),它是ES6(也就是ES2015)引入的特性,专门用来简化动态定义对象属性名的操作。
在ES6之前,如果要给对象设置动态属性名,只能先创建空对象,再通过obj[表达式] = 值的方式添加属性,没法在对象字面量里一步完成。而计算属性名允许你在对象字面量定义中,直接用方括号包裹任意表达式,这个表达式求值后的结果就会作为该属性的名称。
比如你给出的示例:
const SET_SOMETHING = 'SET_SOMETHING'; export default { [SET_SOMETHING](){}, // 等价于 'SET_SOMETHING': function() {} [SET_SOMETHING]: () => {}, // 等价于 'SET_SOMETHING': () => {} };
这里的[SET_SOMETHING]就是计算属性名,它会把常量SET_SOMETHING的值(字符串'SET_SOMETHING')作为对象的属性名,不管你用普通函数还是箭头函数作为属性值都适用。
除了对象字面量,计算属性名还能用于类的属性定义、解构赋值等场景,是ES6里非常实用的语法糖,能让动态属性的定义更简洁直观。
内容的提问来源于stack exchange,提问作者西門 正 Code Guy - JingCodeGuy
相关产品推荐
相关产品推荐

