TIL 73|オブジェクト2(元の値とオブジェクトの比較)


元の値とオブジェクトタイプ(参照タイプ)の値の比較

JSのデータ構造



元の値と参照タイプ(オブジェクトタイプ)の違い

  • 元のタイプの値は変更できませんが、オブジェクト(参照)タイプの値、すなわちオブジェクトは変更可能な値
  • です.
  • の元の値が変数に割り当てられている場合、変数(確保されたメモリ領域)は実際の値を格納します.対照的に、オブジェクトが変数に割り当てられると、変数は参照値
  • を格納する.
  • 元の値を持つ変数が他の変数に割り当てられると、元の値がコピーされて渡されます.対照的に、オブジェクトを指す変数を他の変数に割り当てると、元のオブジェクトの参照値がコピーされて渡されます.( 참조에 의한 전달 )
  • 違う点を描きましょう

  • 元のタイプの値は変更できません.変数に他の値を再割り当てする以外に、値を変更する方法はありません.
  • オブジェクトの値は変更できます.
  • 元のタイプの値を変数に割り当てた後、実際の値を変数に格納し、元の値を持つ変数を他の変数に割り当てると、元の値がコピーされて渡されます.
  • オブジェクトが変数に割り当てられている場合、変数は参照値を格納し、オブジェクトを指す変数が他の変数に割り当てられている場合、参照値はコピーされて渡されます.(参照値は?メモリアドレス値、参照によるコピーはメモリアドレスのコピーを意味)
  • リファレンス配信に関する質問


    -2つの識別子が1つのオブジェクトを共有します.オブジェクトを指す変数(ソース、ユーザ)を別の変数(コピー、コピー)に割り当てると、ソースのメモリアドレス値がコピーされて渡されます.personとcopyは異なるメモリアドレスを持っていますが、同じ参照値を持っています.したがって、元またはコピーのいずれか一方でオブジェクトを変更する場合(オブジェクトのプロパティ値を変更、追加、または削除する場合)は、相互に影響します.
  • は上図であり、
  • の理解に役立つだろう.
    let person = {
      name: 'Lee'
    };
    
    let copy = person;
    
    console.log(copy) ; // person과 동일한 출력결과
    
    copy.name = 'Kim'; 
    person.address = 'Seoul';
    
    console.log(person); // {name: 'Kim', address: 'Seoul'}
    console.log(copy); // {name: 'Kim', address: 'Seoul'}