JS 기본상식 6.Shallow Copy & Deep Copy

어니언·2023년 1월 11일
0

Shallow Copy(얕은복사)란 아주 최소한의 복사를 의미한다. 갑을 복사하더라도, 인스턴스가 메모리에 새로 생성되지 않는다. 즉, 값자체를 복사하는 것이 아니라 주소값을 복사하여 같은 메모리를 가리킨다. 그렇기 때문에 중첩객체의 내부객체의 경우 여전히 영향을 받을 수 있어 의도치 않은 오류가 생길 수 있다.

Deep Copy(깊은 복사)란 실제 데이터 전체를 통으로 복사하는 것으로, 복사된 두 객체는 완전하게 독립적으로 메모리를 차지한다. 그렇기 때문에 전혀 새로운 주소값을 가지게 되면서 얕은복사에시 일어나는 것처럼 중첩객체의 내부객체가 영향을 받지않고 수행을 해나갈 수 있습니다.

정리하자면

얕은복사는 주소값을 복사하기 때문에 참조하고 있는 실제 값이 같지만 깊은 복사는 실제값을 새로운 메모리공간에 복사하기 때문에 참조하고 있는 실제값이 다르게 된다.

profile
안녕하세요.

0개의 댓글