オブジェクトを別のオブジェクトにコピーする必要がある場合、通常は次のようなものを使用します。
const mainObject = { id: 1 }; const secondaryObject = { ...mainObject };
しかし、これはオブジェクトの浅いプロパティをコピーする場合にのみ機能します。次のコードのようなケースがある場合、シナリオは変わります:
const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } }; const secondaryObject = { ...mainObject };
プロパティ ユーザーはコピーされません。それは引き続き mainObject に関連します。したがって、ユーザー プロパティを変更すると、mainObject にも影響します。これを解決するには、次のことを行うことができます:
const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } }; const deepCopy = JSON.parse(JSON.stringify(mainObject ));
これで、2 つの異なるメモリ アドレスを持つ mainObject のディープ コピーができました。
以上がJavaScript におけるオブジェクトの浅いコピーと深いコピーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。