TIL 20.11.06

yuJaeWu·2020년 11월 6일
0

TIL

목록 보기
10/68

오늘 배운것


오늘 공부하며 고민한 문제는 얕은복사(swallow copy)와 깊은복사(deep copy)이다.
우선 자바스크립트의 복사에 대해서 제대로 된 이해가 필요했다.
일단 디테일이 아닌 전체에 대한 설명으로는.
얕은 복사는 객체의 레퍼런스(참조값 == 메모리에 접근이 아닌 객체가 담긴 주소에 접근)하는것이다.
반대로 깊은 복사는 객체 그자체의 value를 복제하는 것이다.
이것은 꽤나 차이가 크다.

얕은복사

  • 복사가 된 객체의 인스턴스 변수는 원본객체의 주소를 참조한다.
  • 그렇기에 완전한 복사가 아니면 주소에 할당된 값을 공유한다.

깊은복사

  • 객체 자체의 메모리까지 복사하여 새로운 메모리에 할당하는 방식
  • 기존 객체와의 연결이 끊겼다 표현하기도 하며 이것은 값은 같으나 완전히 새로운 것이다.
  • for~in함수로 객체의 프로퍼티들을 추출하여 새로운 객체에 넣거나,
    json.stringify를 사용하거나 Object.assign을 이용해 복사할수있다.
profile
어중간한 성공보다는 확실한 실패가 좋다.

0개의 댓글