JS.next

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

Object.assignが実装された

概要

Object.assignはオブジェクト同士をマージするJSerの誰もが長年追い求めた夢のメソッドである。


使い方

Object.assign( target, ...sources )
第一引数で渡したオブジェクトに、第二引数以降のオブジェクトが直接持つ、
全ての列挙可能なStringまたはSymbolプロパティを加え、結果として返す。


例:

var sym = Symbol()

var obj1 = {
 "str": 1,
}

var obj2 = {
 "str": 2,
 [sym]: 2 
}

var obj3 = Object.assign( obj1, obj2 )


console.log( obj1 == obj3 )      // true
console.log( obj1["str"] == 2 )  // true
console.log( obj1[ sym ] == 2 )  // true


例:コンストラクタで使う

class Cat {
  constructor( name, age, color ) {
    Object.assign( this, { name, age, color } )
  }
}

var tama = new Cat( 'タマ', 9, '桃' )

console.log( tama.name == 'タマ' )  // true


例:オブジェクトを(シャロー)コピーする

var cat = Object.assign( {}, tama )

tama.name = '多摩'

console.log( cat.name )  // 'タマ'


実装されるバージョン

V8 4.4.56 4.5.68(デフォルト有効)