스크린샷 2022-09-22 오후 11 53 10

user라는 식별자를 가진 메모리가 생성되고 그 메모리는 오브젝트 메모리 주소값을 참조하게 됩니다.
이때 admin의 age값을 변경하게 되면 admin.age뿐만 아니라 user.age의 값 또한 변경되는것을 볼 수 있는데
이는 admin과 user가 서로 같은 오브젝트 메모리의 주소값을 참조하고 있기 때문입니다.

따라서 원래 의도했던 admin.age값만 27로 변경하고 싶을 경우에는


스크린샷 2022-09-22 오후 11 57 56


와 같이 얕은복사를 하게 되면 기존에 의도했던 admin.age의 값만 27로 변경되는걸 확인할 수 있습니다.

👀 주의할점

스크린샷 2022-09-23 오전 12 02 19


하지만 만약 위와 같이 object 안에 object가 있는 경우에는 user.sizesadmin.sizes는 같은 메모리 주소값을 참조하게 됩니다.
이를 해결하기 위한 또 다른 방법이 바로 깊은복사입니다.


스크린샷 2022-09-23 오전 12 11 48


stringify는 객체를 문자열로 변환하는데 이때 원본 객체와의 참조가 끊기게 됩니다.
이후 다시 parse를 통해 문자열을 다시 객체로 변환시켜줌으로써 admin.sizesuser.sizes는 같은 메모리 주소값을 참조하지 않게 됩니다.