더북(TheBook)

예제에서는 JSON.parse()JSON.stringify() 조합으로 array의 객체를 문자열로, 문자열을 다시 객체로 만들어 deep에 복사합니다. 값을 비교해 보면 arraydeep 변수가 다르고, array[0]deep[0]도 다릅니다. 내부 객체까지 참조 관계가 모두 끊기면서 복사되는 것을 알 수 있습니다.

이 구조를 그림으로 표현하면 다음과 같습니다. 그림을 보면 arraydeep이 공통으로 참조하는 객체가 없습니다. 이렇게 서로의 참조를 모두 끊어내는 것이 깊은 복사입니다.

그림 2-32 깊은 복사 시 메모리 구조

깊은 복사나 참조와 비교해 보면 얕은 복사가 깊은 복사와 참조의 중간에 위치한 복사 방법임을 알 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.