[JavaScript]浅いレプリケーションと深いレプリケーション


👀 浅いコピーと深いコピーはいったいどういう意味なのか、私にはわかりません!!!


私たちが知っている複写という言葉の意味はオリジナルをコピーすることです.
例えば、紙をコピーすると原紙がそのまま存在し、複写紙が発生する.デスクトップで「さようなら」フォルダをコピーすると、「さようならコピー」フォルダが生成されます.理解を助けるために、簡単な例を挙げました.깊은 복사が我々が知っている放射線の概念であり、얕은 복사が覆われていると考えれば、容易に理解できる.

📋 浅い放射


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にオブジェクト値を割り当てた.
  • 変数carはランダムにメモリ空間301号を取得する.
  • が割り当てる値は参照型であるため、まずproperty名と値を含むアドレスに一致するように1010空間を確保しなければならない.
  • (1)は、その後、1011においてname property値を含む空間を確保し、確保されたアドレスをname propertyと一致させる.(2)同様に、1012においてpriceproperty値を含む空間が確保され、確保されたアドレスがpricepropertyと一致する.
  • 2πは変数carCopyにcarを割り当てた.
  • 変数carcopyは、メモリ領域302号をランダムに取得する.
  • carCopyに一致し、carが指すデータ1010アドレスをcarCopyに割り当てる.
  • これが参照によって形成される.
    オブジェクトは、ある場所に個別に格納され、そのオブジェクトのアドレス値のみがコピーされます.つまり、値は格納されたアドレス値を割り当てます.
    3▼▼carcopyの価格propertyは2000円を割り当てた.

    carcopyマッチングの302アドレスに移動し、1010に移動し、1010内にprice propertyを見つけ、1000の代わりに2000を入れるpriceマッチングの1012アドレスに移動します.
    4」carCopyオブジェクトはcarオブジェクトと他の新しいオブジェクトを作成したのではなく、元のcarが見たオブジェクトを一緒に置くので、car === carCopyは同じオブジェクトを完全に参照していると言え、얕은 복사が発生します.

    n/a.結論


    📎 基本データは値で割り当てられているため、コピー時に値が完全にコピーされます.
    📎 参照型データをコピーする場合は、値をコピーするのではなく、その値のアドレス値を参照するので、浅いコピー(参照コピー)です.
    したがって、参照型データをコピーして使用する場合は、この点に注意してください.