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() を使用して source1source2 オブジェクトのプロパティを target オブジェクトにコピーしています。

注意点

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

脚註

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

外部リンク

編集