JavaScript/Object/assign
< JavaScript | Object
Object.assign()
は、1つ以上のソースオブジェクトからターゲットオブジェクトにプロパティをコピーするメソッドです。このメソッドは、ターゲットオブジェクトを返します[1]。
構文
編集Object.assign(target, ...sources)
target
: プロパティをコピーするターゲットオブジェクト。sources
: プロパティをコピーするソースオブジェクト(1つ以上指定可能)。
例
編集オブジェクトのプロパティをコピーするプログラム
編集以下のプログラムは、Object.assign()
を使用してオブジェクトのプロパティをコピーします。
const target = { a: 1, b: 2 }; const source = { b: 4, c: 5 }; const result = 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()
を使用して複数のソースオブジェクトからプロパティをコピーします。
const target = { a: 1 }; const source1 = { b: 2 }; const source2 = { c: 3 }; const result = 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()
は、列挙可能なプロパティのみをコピーします。
脚註
編集- ^ これは、浅いコピー(シャローコピー)を行います。
外部リンク
編集