JavaScript ES6 Object Literal Extensions 物件實字的擴展
ES6 的新語法讓 object literal 可以寫得更簡短清楚。
Property value shorthand 物件屬性簡寫
如果你的屬性名稱和變數名稱一樣,你可以在 object literal 只使用變數,則變數的名稱會被當作是屬性名稱,而變數的值會被當作是屬性值。
用法:
var obj = {
foo,
bar
};
上面的語法同等於:
var obj = {
foo: foo,
bar: bar
};
Method definition shorthand 物件方法簡寫
除了物件的屬性可以簡寫外,物件的方法也可以。
ES6 新的寫法:
var obj = {
// 可以省略 function 關鍵字和冒號 (colon)
doSomething() {
// ...
}
};
上面的寫法同等於:
var obj = {
doSomething: function() {
// ...
}
};
Computed property keys 計算得出的屬性名稱
ES6 允許使用表達式 (expression) 作為屬性的名稱,語法是將 expression 放在中括號 [ ]
裡面,透過 [ ] 的語法,我們的屬性名稱就可以放入變數,達到動態產生屬性名稱的效果。
範例:
var prefix = 'es6';
var obj = {
// 計算屬性
[prefix + ' is']: 'cool',
// 計算方法
[prefix + ' score']() {
console.log(100);
}
};
// 顯示 cool
console.log(obj['es6 is']);
// 顯示 100
obj['es6 score']();