공부/JavaScript

객체 병합

무심한고라니 2023. 4. 11. 16:20

앞서 전개구문[1]을 통한 객체 병합에 대해 살펴보았다. 다음 예를 살펴보자.

 

 

분명히 복사를 했는데, 기존 객체(store)의 변경이 복사본(copy)에도 영향을 미치고 있다. 이는 전개구문을 통한 복사가 얕은 복사[3]이기 때문이다.

 

 

따라서 위처럼 2-Depth의 요소를 재할당해주는 방식으로 복사해야 한다. 외에도 JSON 내장 객체나 lodash 라이브러리를 통해 깊은 복사를 할 수 있다.

 

------

1. 원 객체를 변화시키지 않기 위해[2] 전개구문을 사용한다.

2. 불변성을 위해 배열의 경우 concat, filter, map 등의 함수를 이용한다.

3. 얕은 복사의 방법에는 전개구문 외 Object.assign을 사용할 수도 있다.