プロパティ名に「式」を使う
JavaScript オブジェクトの初期化時のプロパティ名に「式」が使えます。
const propertyName = "my-key";
const object = { [propertyName]: "Hello, computed property name" };
object["my-key"]; // => "Hello, computed property name"
オブジェクト初期化内のプロパティ名のブラケットで囲んだ中身が、 式 として評価されます。よって以下のような定義も可能です。:
const object = { ["key" + 1]: 1 };
object.key1; // => 1
computed property names という名前で仕様化されています。
ES6 以上が必要ですが 2017 年のブラウザーなら問題なく使えるでしょう。
Iterable オブジェクトの構築
for 文などで列挙可能なオブジェクトを作る際に Symbol.iterator
という定数で宣言されたキーを持たせる必要があります。
このときに computed property names が便利です。
var log = '';
const iterable = {
[Symbol.iterator]: () => {
var i = 0;
return {next: () => new Object({value: i += 2, done: i > 10, }), };
},
};
for (let x of iterable) log += x + ' ';
log; // => 2 4 6 8 10