鍍金池/ 問(wèn)答/HTML/ 關(guān)于es6語(yǔ)法問(wèn)題。

關(guān)于es6語(yǔ)法問(wèn)題。

import * as types from './mutation-types'
const mutations={
      [types.num]//mutation-types取/mutation-types里的值,為什么需要用[],直接types.num不可以嗎?
    }
回答
編輯回答
吃藕丑

圖片描述

2018年2月21日 22:10
編輯回答
汐顏

types.num應(yīng)該是個(gè)變量吧,所以需要[]起來(lái)。

2017年8月16日 15:50
編輯回答
醉淸風(fēng)

舉個(gè)例子:
假如有個(gè)變量: let name = 'test'
另外有個(gè)對(duì)象a要獲取變量name的內(nèi)容,并且要把其內(nèi)容作為其屬性名。
我們知道對(duì)對(duì)象賦值可以通過(guò)'.'預(yù)算符,如a.age = 1
但是要實(shí)現(xiàn)上面這個(gè)需求用'.'運(yùn)算符就無(wú)法實(shí)現(xiàn),因?yàn)樽兞縩ame的值是不可預(yù)知,
所以就需要[]運(yùn)算符,則: a[name] = 'test2'
clipboard.png
同理:types.num是個(gè)變量,我們要去它的值所為對(duì)象屬性名,所以需要加括號(hào)

2018年4月22日 13:12
編輯回答
怣人

這個(gè)是數(shù)組的展開(kāi)運(yùn)算,類似于對(duì)象的...obj

2018年4月23日 08:35
編輯回答
局外人

這屬于 es6 里的 屬性名表達(dá)式

當(dāng)對(duì)象的屬性名保存在一個(gè)變量中,或者需要計(jì)算時(shí),在 es5 規(guī)范下,使用變量名是無(wú)法定義屬性的。
但在 es6 中,通過(guò)中括號(hào)的方式,可以實(shí)現(xiàn)這一操作。

例如:

let nameProp = 'name';

let obj = {
  [nameProp]: 'Kobe Bryant',
  ['spirit' + 'Prop']: 'Mamba Out'
};

console.log(obj.nameProp)        //打印 'undefined',因?yàn)橛?jì)算后的 key 是'name'
console.log(obj.name)            //打印 'Kobe Bryant'
console.log(obj.spiritProp)      //打印 'Mamba Out',計(jì)算了字符串相加
2017年8月16日 05:38