読者です 読者をやめる 読者になる 読者になる

JS.next

JavaScriptの最新実装情報を追うブログ

オブジェクトリテラルのキーに式が使えるようになった

★★★ ES2015 新仕様実装 V8

概要

今までオブジェクトリテラルのキー部分には固定の文字列を指定するしかなかったが、ES2015では動的な式の結果やSymbolを指定することができる。


使い方

キー部分を括弧『[ ]』で囲むと、オブジェクトリテラルが評価される時に括弧間の式が評価され、その結果がキーとなる。

つまりこれを

var key = 'hoge'
var obj = { }
obj[key] = val

こう書くことができる。

var key = 'hoge'
var obj = { [key]: val }


この記法はSymbolをキーにすることもでき、Class構文でも使える。
そしてメソッド定義記法と合わせてこの様に使える。

class Cat {
  get [ Symbol.toStringTag ]() { return 'Cat' }
}

console.log( '' + new Cat )  // "[object Cat]"


実装されるバージョン

V8 4.2.9 4.4.8(デフォルト有効)