JavaScriptのObject.assign()メソッドでオブジェクトをコピーする方法
JavaScriptの Object.assign() メソッドは、1つ以上のソースオブジェクトをターゲットオブジェクトにコピーするために使用されます。このメソッドは、ソース側では「get」、ターゲット側では「set」が使われるため、ゲッターとセッターも適切に呼び出されます。
基本構文
Object.assign(target, ...sourceObjects);
第1引数にはコピー先のターゲットオブジェクトを指定し、第2引数以降にはコピー元となるソースオブジェクトを1つ以上渡すことができます。戻り値として、コピー結果のターゲットオブジェクトが返されます。
オブジェクトをコピーするサンプルコード
以下は、Object.assign() を使ってオブジェクトを別のオブジェクトにコピーする例です。
var object = {first: second => second + 1000};
var object2 = Object.assign({}, object);
console.log("The result=");
console.log(object2.first(1000));このコードでは、空のオブジェクト {} をターゲットとして指定することで、元のオブジェクトの中身だけを新しいオブジェクトに複製しています。
プログラムの実行方法
上記のプログラムを実行するには、Node.jsを使って以下のコマンドを入力します。
node fileName.js
ここでは、ファイル名を「demo102.js」としています。
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo102.js The result= 2000
補足:Object.assign()を使用する際の注意点
Object.assign() によるコピーは「浅いコピー(シャローコピー)」である点に注意が必要です。ネストされたオブジェクトや配列が含まれる場合、それらの参照はそのまま共有されるため、ディープコピーを行いたい場合は structuredClone() やJSON変換などの別の手法を検討してください。また、同名のプロパティが存在する場合、後から渡されたソースオブジェクトの値が優先されて上書きされます。
-
【JavaScript入門】複数のオブジェクトを1つにマージして単一のオブジェクト配列を作成する方法
JavaScriptでは、Object.assign()メソッドとスプレッド構文(...)を組み合わせることで、配列内の複数のオブジェクトを1つのオブジェクトに簡単にマージすることができます。 Object.assign()は、1つ以上のコピー元オブジェクトから、コピー先のオブジェクトへすべてのプロパティをコピーするためのメソッドです。スプレッド構文を使って配列の要素を展開することで、各オブジェクトのキーと値が1つのオブジェクトに統合されます。 コード例 以下のコードは、配列内の複数のオブジェクトを単一のオブジェクトにマージする例です。 <!DOCTYPE html> <ht
-
JavaScriptでnull・空のオブジェクトを含む配列に値を割り当てる方法
JavaScriptでは、forEach()メソッドとObject.keys()メソッドを組み合わせることで、nullや空のオブジェクトを含む配列に対して効率的に値を割り当てることができます。本記事では、実際のコード例を交えながら、その具体的な実装方法をわかりやすく解説します。 サンプルコード 以下は、JavaScriptを使用してnull/空のオブジェクトを持つ配列に値を割り当てるコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&qu