[JavaScript]浅いレプリケーションと深いレプリケーション
6166 ワード
👀 浅いコピーと深いコピーはいったいどういう意味なのか、私にはわかりません!!!
私たちが知っている複写という言葉の意味はオリジナルをコピーすることです.
例えば、紙をコピーすると原紙がそのまま存在し、複写紙が発生する.デスクトップで「さようなら」フォルダをコピーすると、「さようならコピー」フォルダが生成されます.理解を助けるために、簡単な例を挙げました.
깊은 복사
が我々が知っている放射線の概念であり、얕은 복사
が覆われていると考えれば、容易に理解できる.📋 浅い放射
Shllow Copy
浅いレプリケーションは、次のステップの値のみをコピーします.
📋 ふかほうしゃ
Deep Copy
深度コピーは、内部のすべての値を検索してコピーする方法です.
📔 なぜ浅い放射線と深い放射線を理解し理解するのか。
javascriptでは、
참조형 데이터
が格納値のアドレス値を割り当てるため、참조형 데이터
をよりよく処理するために、浅いコピーと深いコピーを理解する必要がある.記憶の観点をもっと理解すればいい.参照型データの詳細については、次の手順に従います.👉 基本タイプと参照タイプの違い
JavaScriptデータ型に基づいてレプリケーションする方法について簡単に説明します.
✔朕デフォルトデータ型値コピー(深コピー)
基本資料型のバリューコピーを扱う場合、浅いコピー、深いコピーの概念を議論する必要はないと思いますが、深いコピーとは何か、浅いコピーとは何かを理解するために、「基本資料型のバリューコピー(深いコピー)」という言い方を使いました.
🔸 例題で理解度を高める。
let a = 10; // 변수 a에 10을 할당 -> 변수 a가 메모리 공간 101번지를 확보하고, 변수 a와 매칭되어 있는 주소값인 101 저장 공간에 10이 저장 된다.
let b = a; // 변수 b에 a를 할당 -> 메모리 공간 102번지 확보, 변수 c와 매칭된 주소값 102번지에 a가 저장 된다.
console.log(a); // 10
console.log(b); // 10
デフォルトのデータ型値をコピーする場合、コピー値は他のメモリ領域に割り当てられるため、元の値とコピー値は相互に影響しません.これは私たちがよく知っている放射線の概念
깊은 복사
です.🔷 例題を通して,混同した概念を探し出す.
let b = '안녕'; // 변수 b에 '안녕'을 할당 -> 메모리 공간 201번지 확보, 변수 b와 매칭된 주소값 201번지에 '안녕'이 저장된다.
b = 1; // b에 1을 할당(재할당) -> 메모리 공간 201번지에 덮어 쓰게 된다.
console.log(b); // 1
メモリに関する값을 복사하는 것
と값을 재할당 하는 것
について、よく知っていれば良いという例を追加しました.勘定科目および勘定科目のオブジェクトのレプリケーション(浅いレプリケーション)
🔸 例題で理解度を高める。
const car = {
name: 'genesis',
price: 1000,
};
let carCopy = car;
carCopy.price = 2000;
console.log(car); // { name: 'genesis', price: 2000 }
console.log(carCopy); // { name: 'genesis', price: 2000 }
19601;は変数carにオブジェクト値を割り当てた.オブジェクトは、ある場所に個別に格納され、そのオブジェクトのアドレス値のみがコピーされます.つまり、値は格納されたアドレス値を割り当てます.
3▼▼carcopyの価格propertyは2000円を割り当てた.
carcopyマッチングの302アドレスに移動し、1010に移動し、1010内にprice propertyを見つけ、1000の代わりに2000を入れるpriceマッチングの1012アドレスに移動します.
4」carCopyオブジェクトはcarオブジェクトと他の新しいオブジェクトを作成したのではなく、元のcarが見たオブジェクトを一緒に置くので、
car === carCopy
は同じオブジェクトを完全に参照していると言え、얕은 복사
が発生します.n/a.結論
📎 基本データは値で割り当てられているため、コピー時に値が完全にコピーされます.
📎 参照型データをコピーする場合は、値をコピーするのではなく、その値のアドレス値を参照するので、浅いコピー(参照コピー)です.
したがって、参照型データをコピーして使用する場合は、この点に注意してください.
Reference
この問題について([JavaScript]浅いレプリケーションと深いレプリケーション), 我々は、より多くの情報をここで見つけました https://velog.io/@seong-dodo/자바스크립트-얕은-복사와-깊은-복사テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol