앞서 전개구문[1]을 통한 객체 병합에 대해 살펴보았다. 다음 예를 살펴보자.
분명히 복사를 했는데, 기존 객체(store)의 변경이 복사본(copy)에도 영향을 미치고 있다. 이는 전개구문을 통한 복사가 얕은 복사[3]이기 때문이다.
따라서 위처럼 2-Depth의 요소를 재할당해주는 방식으로 복사해야 한다. 외에도 JSON 내장 객체나 lodash 라이브러리를 통해 깊은 복사를 할 수 있다.
------
1. 원 객체를 변화시키지 않기 위해[2] 전개구문을 사용한다.
2. 불변성을 위해 배열의 경우 concat, filter, map 등의 함수를 이용한다.
3. 얕은 복사의 방법에는 전개구문 외 Object.assign을 사용할 수도 있다.
'공부 > JavaScript' 카테고리의 다른 글
배열의 특성 (0) | 2023.03.18 |
---|---|
클로저의 활용 (0) | 2023.03.15 |
this 관련 몇 가지 예제 (0) | 2023.03.15 |
실행 컨텍스트 관련 예제 (0) | 2023.03.15 |
중복 제거 후 병합 (0) | 2023.03.13 |
댓글