js의 Date 객체 깊은 복사

Rhseung·2024년 2월 23일

tips

목록 보기
7/19

문제

const d1 = new Date(2024, 1, 23);
const d2 = d1;

d2.setFullYear(2023);

console.log(d1);
console.log(d2);

실행결과:

Thu Feb 23 2023 00:00:00 GMT+0900 (한국 표준시)
Thu Feb 23 2023 00:00:00 GMT+0900 (한국 표준시)

d2의 값을 바꾸려는 의도의 코드이나 실행 결과를 보면 d1도 바뀌는, 즉 파이썬에서 흔히 보던 얕은 복사 이슈가 발생한다.


해결

const d1 = new Date(2024, 1, 23);
const d2 = new Date(d1);

DateConstructor에다가 Date 객체를 넣으면 깊은 복사가 된다.

0개의 댓글