알고는 있지만, 정리하지 않으면 가끔 헤갈리는 얕은복사, 깊은복사에 대해 아~~~주 간단하게 정리해보자
얕은복사
Object.assign
, 전개 연산자
로 사용 가능깊은복사
Json.parse(Json.stringify())
, lodash의 cloneDeep함수
사용 가능Redux Store와 React state의 상태 변화를 감지하는 방법은 shallow equility
이다
shallow equality
객체의 reference를 비교하는 방식
같은 객체라도 항상 다른 값으로 체크하게 된다.
deep equality
객체 내부 프로퍼티의 값을 모두 비교하는 방식
const foo = { name: 'boo' }
const zoo = { name: 'boo' }
- Shallow equality관점에서는 foo와 zoo는 다른 객체
- Deep equality관점에서는 foo와 zoo는 같은 객체