ECMA Script6(JavaScript)でObjectをコピーするObject.assignメソッド

ECMA Script6(JavaScript)でObjectをコピーする方法です。

簡単に思えますが、一旦コピーしてみると意外な動作をします。

let obj1 = {'a':'1'};
let obj2 = obj1;
obj1.b = '2';
console.log(obj2);

結果は以下のようになります。

{ a: '1', b: '2' }

あれ?って感じですね。よく調べてみるとJavaScriptってオブジェクトは参照渡しなんだそうです。

プリミティブ型については値渡しになります。

オブジェクトを値渡しにするObject.assignメソッド

Object.assignメソッドを使用すると値渡しの動きになります。第二引数にコピーしたいオブジェクトを指定します。

let obj1 = {'a':'1'};
let obj2 = Object.assign({}, obj1);
obj1.b = '2';
console.log(obj2);

結果は以下のようになります。

{ a: '1' }
スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA