JavaScript/Object/assign
表示
< JavaScript | Object
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()
を使用して source1
と source2
オブジェクトのプロパティを target
オブジェクトにコピーしています。
注意点
[編集]- 浅いコピー:
Object.assign()
は、浅いコピーを行います。つまり、ネストされたオブジェクトはコピーされず、参照がコピーされます。 - プロパティの上書き: 同じ名前のプロパティが複数のソースオブジェクトに存在する場合、後ろのソースオブジェクトのプロパティが前のソースオブジェクトのプロパティを上書きします。
- 列挙可能なプロパティのみ:
Object.assign()
は、列挙可能なプロパティのみをコピーします。
脚註
[編集]- ^これは、浅いコピー(シャローコピー)を行います。