https://blog.csdn.net/qq_34629352/article/details/78014779
ES6允许字面量定义对象时,用表达式作为对象的属性名和方法名,即把表达式放在方括号内。
在组件方法内提交mutation时,也要先导入常量:
es6花样不少,不熟悉的话怎么看总感觉有问题。
于是。import Vuexfrom'vuex'import{ SOME_MUTATION}from'./mutation-types'const store =newVuex.Store({ state:{...}, mutations:{//
我们可以使用 ES2015 风格的计算属性命名功能来使用一个常量作为函数名[SOME_MUTATION](state){//
mutate state}}})
属性名表达式
JavaScript语言定义对象的属性,有两种方法。
// 方法一
obj.foo =true;
// 方法二
obj['a'+'bc'] =123;
上面代码的方法一是直接用标识符作为属性名,方法二是用表达式作为属性名,这时要将表达式放在方括号之内。
但是,如果使用字面量方式定义对象(使用大括号),在 ES5 中只能使用方法一(标识符)定义属性。
varobj = {
foo:true,
abc:123
};
ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内。
letpropKey ='foo';
letobj = {
[propKey]:true,
['a'+'bc']:123
};
下面是另一个例子。
varlastWord ='last word';
vara = {
'first word':'hello',
[lastWord]:'world'
};
a['first word']// "hello"
a[lastWord]// "world"
a['last word']// "world"
表达式还可以用于定义方法名。
letobj = {
['h'+'ello']() {
return'hi';
}
};
obj.hello()// hi
http://caibaojian.com/es6/object.html 具体看这里