LoginSignup
0
0

More than 5 years have passed since last update.

オブジェクト初期化時のプロパティ名に「式」を使う

Posted at

プロパティ名に「式」を使う

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

参考情報

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0