완로그
article thumbnail

앝은 복사(Shallow Copy) - 참조형의 1차원 데이터만 복사

깊은 복사(Deep Copy) - 참조형의 모든 차원의 데이터를 복사

 

Object.assign(빈 객체, 복사하고 싶은 객체)이나 전개 연산자로 얕은 복사를 할 수 있다.

그러나 얕은 복사는 1차원의 데이터만 복사하기 때문에, 고차원의 데이터는 같은 주소를 참조하게 된다.

 

그렇기 때문에 깊은 복사를 하여 완전히 데이터를 분리해주어야한다.

깊은 복사는 고차원의 데이터도 다른 메모리 주소에 값을 저장하기 때문에, 완전하게 연결고리를 끊었다고 할 수 있다.

 

배열은 복사하고 싶은 배열.concat(빈 배열)이나 전개 연산자로 얕은 복사를 할 수 있다.

객체와 원리는 같다.

 

깊은 복사를 위해서는 lodash의 cloneDeep을 사용하자!

profile

완로그

@완석이

프론트엔드 개발자를 꿈꾸는 완석이의 일기장입니다.