コンテンツにスキップ

JavaScript/Object/assign

出典: フリー教科書『ウィキブックス(Wikibooks)』

Object.assign() は、1つ以上のソースオブジェクトからターゲットオブジェクトにプロパティをコピーするメソッドです。このメソッドは、ターゲットオブジェクトを返します[1]

構文

[編集]
Object.assign(target,...sources)
  • target: プロパティをコピーするターゲットオブジェクト。
  • sources: プロパティをコピーするソースオブジェクト(1つ以上指定可能)。

[編集]

オブジェクトのプロパティをコピーするプログラム

[編集]

以下のプログラムは、Object.assign() を使用してオブジェクトのプロパティをコピーします。

consttarget={a:1,b:2};constsource={b:4,c:5};constresult=Object.assign(target,source);console.log(result);// { a: 1, b: 4, c: 5 }console.log(target);// { a: 1, b: 4, c: 5 }

このプログラムでは、Object.assign() を使用して source オブジェクトのプロパティを target オブジェクトにコピーしています。target オブジェクトは変更され、result も同じオブジェクトを参照します。

複数のソースオブジェクトからプロパティをコピーするプログラム

[編集]

以下のプログラムは、Object.assign() を使用して複数のソースオブジェクトからプロパティをコピーします。

consttarget={a:1};constsource1={b:2};constsource2={c:3};constresult=Object.assign(target,source1,source2);console.log(result);// { a: 1, b: 2, c: 3 }console.log(target);// { a: 1, b: 2, c: 3 }

このプログラムでは、Object.assign() を使用して source1source2 オブジェクトのプロパティを target オブジェクトにコピーしています。

注意点

[編集]
  • 浅いコピー: Object.assign() は、浅いコピーを行います。つまり、ネストされたオブジェクトはコピーされず、参照がコピーされます。
  • プロパティの上書き: 同じ名前のプロパティが複数のソースオブジェクトに存在する場合、後ろのソースオブジェクトのプロパティが前のソースオブジェクトのプロパティを上書きします。
  • 列挙可能なプロパティのみ: Object.assign() は、列挙可能なプロパティのみをコピーします。

脚註

[編集]
  1. ^これは、浅いコピー(シャローコピー)を行います。

外部リンク

[編集]


close