JavaScript におけるオブジェクトの浅いコピーと深いコピー

Mary-Kate Olsen
リリース: 2024-10-04 22:25:02
オリジナル
479 人が閲覧しました

Shallow vs Deep Copy of Objects in JavaScript

オブジェクトを別のオブジェクトにコピーする必要がある場合、通常は次のようなものを使用します。


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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート