- スプレッド演算子を使用する方法:
const originalObject = { name: 'John', age: 30 };
const copiedObject = { ...originalObject };
console.log(copiedObject); // { name: 'John', age: 30 }
この方法では、スプレッド演算子を使用してオブジェクトを展開し、新しいオブジェクトにコピーします。ただし、この方法は浅いコピーとなり、オブジェクト内のネストされたオブジェクトや配列は参照のままとなります。
- JSON.stringifyとJSON.parseを使用する方法:
const originalObject = { name: 'John', age: 30 };
const copiedObject = JSON.parse(JSON.stringify(originalObject));
console.log(copiedObject); // { name: 'John', age: 30 }
この方法では、JSON.stringify
を使ってオブジェクトを文字列に変換し、JSON.parse
を使って文字列をオブジェクトに変換します。これにより、完全なディープコピーが得られますが、関数やシンボルなどの特殊なデータ型は失われる場合があります。
以上がJavaScriptでのオブジェクトのディープコピーの方法です。どちらの方法も一般的に使用されており、シンプルで簡単に実装できます。適宜、状況に応じて最適な方法を選択してください。