참조형은 가변성으로 인해, 데이터를 복사할 때 주의가 필요합니다.
얕은 복사(Shallow Copy) - 참조형의 1차원 데이터만 복사
const a = { x: 1}
const b = Object.assign({}, a)
// const b = { ...a} 전개연산자도 사용 가능
b.x = 2
console.log(b) // {x: 2}
console.log(a) // {x: 1}
깊은 복사(Deep Copy) - 참조형의 모든 차원 데이터를 복사
import cloneDeep from 'lodash/cloneDeep'
const a = { x: {y: 1}}
const b = cloneDeep(a)
b.x.y = 2
console.log(b) // x: {y: 2}
console.log(a) // x: {y: 1}