지난 게시글에 이어서..
date에 대해 알아보기 전에, 궁금한 점 미리 짚고 넘어가기
A : 자바스크립트에서 Date는 기본적으로 제공되는 내장 객체이지만, 이도 사실 생성자 함수의 역할을 해. 왜냐면 new Date()와 같이 new 키워드를 사용해서 새로운 객체를 만들 수 있기 때문이야.
생성자 함수라는 말은 **"객체를 생성하는 함수"**라는 의미로, Date처럼 자바스크립트에서 기본적으로 제공되는 객체도 new를 통해 새로운 객체를 만들 수 있기 때문에 생성자 함수라고 불리는 거야.
다만, Date는 특별히 날짜와 시간과 관련된 작업을 쉽게 처리할 수 있도록 내장되어 있는 거고, 우리가 만든 사용자 정의 생성자 함수들과 같은 원리로 동작하는 거지!
Q : 예를 들어, const now = new Date() 이렇게 상수화 하잖아 ? 근데 여기서 왜 date 앞에 new가 붙는거야 ? 빌트인 함수잖아.
A : Date 앞에 new가 붙는 이유 ! Date는 생성자 함수(Constructor Function) 이기 때문이야. 자바스크립트에서 new 키워드를 사용하면 새로운 인스턴스(객체) 를 생성해.
const now = new Date();
만약 new 없이 Date()를 호출하면 단순히 문자열로 변환된 현재 날짜가 반환될 거야.
>>
console.log(Date()); // "Tue Mar 18 2025 12:34:56 GMT+0900 (KST)"
하지만 new Date()는 Date 객체를 반환해.
>>
console.log(new Date()); // Date 객체 (실제 날짜/시간을 조작할 수 있음)
Q : 빌트인 함수임에도 왜 Date 이렇게 생성자 처럼 대문자로 쓰는지 ?
A : 자바스크립트의 빌트인 객체(Built-in Objects) 중에는 함수처럼 호출되는 것과 생성자로 사용하는 것이 나뉘어 있어.
Date는 생성자로 사용해야 의미 있는 데이터(날짜 객체)를 만들 수 있는 생성자 함수야.
예를 들어 Array, RegExp, Map 같은 것들도 생성자로 사용해야 해.
'Studying > JavaScript' 카테고리의 다른 글
자바스크립트 공부하기 - JSON (0) | 2025.03.20 |
---|---|
자바스크립트 공부하기 - 객체 리터럴 (0) | 2025.03.20 |
자바스크립트 공부하기 - 빌트인 생성자 배열 (0) | 2025.03.19 |
자바스크립트 공부하기 - 객체라는 단어가 왜 이렇게 많이 나와 .. ? (0) | 2025.03.19 |
자바스크립트 공부하기 - 사용자 생성자 함수, 생성자 객체 (1) | 2025.03.19 |