JS #7 :: 객체의 얕은 복사(Shallow copy)와 깊은 복사(Deep copy)

해다·2022년 3월 21일
0

JavaScript & TypeScript

목록 보기
6/10
post-thumbnail

🙊 잘못 기재한 부분이 있다면 댓글로 남겨주세요!


어제 올렸던 구조 분해 할당 포스팅에서 이어지는 내용.

복사면 복사지 뭘 또 깊게 하고 얕게 한단 말인가?
우선 개념부터 살펴보기로 했다.

👾얕은 복사

  • '값'이 아닌 '주소 값'(=필드 값) 복사
  • 얕은 복사를 한 경우에는 원본 값 변경시 복사한 값도 변경됨
    (기본형 값들은 복사되지만, 참조형 변수는 같은 객체를 가리키게 된다)
  • 연산자는 얕은 복사를 수행한다.

👾깊은 복사

  • '값'을 새로운 메모리 공간에 복사
  • 복사한 후에 원본 값이 변경되어도 복사한 값은 유지
    (참조형 변수의 경우 참조하는 객체에 대해서도 새롭게 복사해 만들어준다)
  • 얕은 복사에 비해 메모리 소요가 크고 속도가 느림
  • 깊은 복사의 성능을 높이기 위해서 npm의 lodash 형식을 사용

간단하게 이해했을 때는 얕은 복사는 바로가기 폴더를 만드는 느낌이고 깊은 복사가 우리가 일반적으로 알고 있는 ctrl+c ctrl+v 느낌인 것 같다.

이걸 보니 또 기본형 변수와 참조형 변수가 뭔지 궁금해지는데... 이건 나중에 따로 정리하겠다!

profile
잘하는 건 아닌데 포기하진 않을거야

0개의 댓글