JS.next

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

Spread/Restプロパティが実装された

概要

配列のSpread/Rest構文のように、オブジェクト内に別のオブジェクトを展開する構文が実装された。


比較例

Spread

ES2017以前こう書いていたのが

// オブジェクト o1 と o2 を合成し、プロパティ c を加えたものを o3 としたい
o1 = { a: 1 }
o2 = { b: 2 }

o3 = Object.assign( { }, o1, o2, { c: 3 } )

ES2018以降こう書ける

// オブジェクト o1 と o2 を合成し、プロパティ c を加えたものを o3 としたい
o1 = { a: 1 }
o2 = { b: 2 }

o3 = { ...o1, ...o2, c: 3 }

オブジェクトの合成が簡単にできるようになる。


Rest

ES2017以前こう書いていたのが

  // プロパティ a, b と残りをまとめたものを r として取り出したい
o4 = { a: 1, b: 2, c: 3, d: 4 }

var { a, b } = o4
var { c, d } = o4
r = { c, d }

ES2018以降こう書ける

  // プロパティ a, b と残りをまとめたものを r として取り出したい
o4 = { a: 1, b: 2, c: 3, d: 4 } 

var { a, b, ...r } = o4

オブジェクトからの指定プロパティ以外の抜き取りが簡単にできるようになる。


実装されるバージョン

V8 5.7.403