JavaScript의 생성자 개념과 Collection들에 대해 알아봅니다.
Map, Set, Math, Date, N-Array 들이 내용에 포함됩니다.
유사한 객체를 다중으로 만들 때 사용되는 함수입니다.
일반적으로 생성자 함수의 첫 글자는 대문자로 시작합니다.
생성자 함수로 객체 생성 시 new 연산자를 통해 객체를 생성합니다.
보통 다음과 같은 붕어빵 예제로 이해하기 쉽게 설명합니다.
// 빵틀
function fishBread(flavor, price) { // 맛과 가격을 입력받아 붕어빵 생성
this.flavor = flavor;
this.price = price;
this.base = "flour"; // 베이스는 밀가루로 동일
}
// 붕어빵
const bread_1 = new fishBread("cream", 1200); // 1200원짜리 크림붕어빵
const bread_2 = new fishBread("redbean", 1000); // 1000원짜리 팥붕어빵
const bread_3 = new fishBread("milk", 1500); // 1500원짜리 우유붕어빵
[ new 가 없는 경우 생성자 작성법 ]
function User(name) {
if (!new.target) {
// new 와 함께 호출하지 않았으면
return new User(name); // 객체 생성 후 return
}
this.name = name;
}
const user_1 = User("john"); // new 가 없어도 잘 생성된다.
console.log(user_1); // User { name: 'john' }
const user_2 = new User("john");
console.log(user_2); // User { name: 'john' }
구조 혹은 비구조화 형태로 프로그래밍 언어가 제공하는 값을 담을 수 있는 공간입니다.
JavaScript에서 제공하는 Collection은 다음과 같습니다.
1. Indexed Collection : Array, Typed Array
2. Keyed Collection : Object, Map, Set, ...
다양한 자료형의 key를 허용하고, key-value 형태의 자료형을 저장할 수 있는 Collection 입니다.
Map은 Object와 대비하여 비교하면 다양한 key의 사용을 허용하고, 값의 추가/삭제 시 메서드를 통해 수행이 필요합니다.
대표 속성 및 메서드는 다음과 같습니다.
for...of
구문을 통해 반복문을 수행할 수 있습니다.value만을 저장하며 중복을 허용하지 않는 Collection입니다.
대표 속성 및 메서드는 다음과 같습니다.
표준 Built-in(내장) 객체로써 수학적인 연산을 위한 속성값과 메서드를 제공하는 객체입니다.
Math는 생성자 함수가 아니고, 모든 속성과 메서드는 정적이기에 Math.function()으로 언제든 호출할 수 있습니다.
대표 속성 및 메서드는 다음과 같습니다.
...
)을 사용해야 합니다.표준 Built-in 객체로써 날짜와 시간을 위한 속성값과 메서드를 제공하는 객체입니다.
Date 객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값으로 표현합니다.
생성자 및 대표 메서드는 다음과 같습니다.
날짜 정보를 설정합니다.
문자열 기반 날짜 정보 설정: Date.parse(YYYY-MM-DDTHH:mm:ss.sssZ)
배열(Array) 안에 N개 만큼의 배열이 존재하는 객체입니다.
2/3차원 지도 정보, RGB를 저장하는 2차원 사진 파일 등을 표현할 때 활용할 수 있습니다.
배열 내 배열들의 길이는 동일해야 합니다.