HTML&CSS&Javascript/JS

[JS] 객체의 깊은 복사 / 얕은 복사

킹우현 2023. 11. 27. 09:13

참조 타입의 데이터는 복사 시 데이터의 값 자체가 아닌 '값이 저장된 메모리의 주소'가 저장된다. 

 

따라서 참조 타입의 복사 방법은 얕은 복사(Shallow Copy)와 깊은 복사(deep copy)로 나뉜다. 

 

- 얕은 복사(Shallow copy)데이터가 저장된 참조값(주소)를 복사한다. 즉, 데이터 자체를 복사한 것이 아니라 해당 데이터의 참조 값을 전달하여 하나의 데이터를 공유하는 것이다. ex) Object.assign(), 전개구문 모두 2차원 이상의 객체에서는 얕은 복사가 수행됨

 

- 깊은 복사(Deep Copy)새로운 메모리 공간을 확보해 데이터 자체완전히 복사하는 것을 의미한다. ex) JSON.parse()와 JSOM.stringify() 함수를 사용하는 방법