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