본문 바로가기
Q&A2018년 8월 15일1분 읽기

JavaScript 객체 깊은 복사 방법

코
코딩하는민수
조회 2408댓글 1

JavaScript에서 객체를 복사할 때 Object.assign이나 spread 연산자를 쓰면 얕은 복사만 된다고 하는데, 깊은 복사는 어떻게 하나요?

JSON.parse(JSON.stringify())를 쓰면 된다고 하는데 함수나 Date 객체는 안 된다고 해서요.

댓글 1

서서버지기영호8년 전

JSON 방식은 간단하지만 함수, Date, undefined, RegExp 등은 사라지거나 변합니다. lodash의 _.cloneDeep()이 가장 안전합니다. 직접 구현하려면 재귀적으로 typeof를 체크하면서 복사하면 됩니다.

Ctrl+Enter로 등록