클래스(Class)는 여러 개의 독립적인 객체를 빠르게 만들어내게끔 할 수 있는 틀과 같다. 말 그대로 클래스는 객체의 템플릿이다.
그리고 클래스라는 틀로 찍어낸 결과물을 인스턴스(instance)라고 한다.
class
라는 키워드가 있기 전 ES5의 클래스는 함수로 정의했다.
function Person(age, name, gender){
... // 인스턴스가 만들어질 때 실행되는 코드
}
일반적인 함수와 구별하기 위해 클래스는 대문자로 시작하며 일반명사로 만든다. 이는 클래스에도 이어져 class
를 만들 때도 대문자로 시작하여 만드는 것이 관습이다. 소문자로 해도 오류는 나지 않음.
ES6에서는 class
라는 키워드가 도입되어 이 키워드로 클래스를 정의할 수 있다.
최근에는 class
키워드를 주로 사용한다.
constructor
함수는 인스턴스가 만들어질 때 실행되는 코드이고, 객체지향 프로그래밍에서 생성자 함수라고 부른다.
class Person{
constructor(age, name, gender){
... // 인스턴스가 만들어질 때 실행되는 코드
}
}
new
키워드를 이용하여 클래스의 인스턴스를 만들어낼 수 있다.
const 성훈 = new Person('28', 'jeonseonghun', 'male');
const 민수 = new Person('27', 'kimminsu', 'male');
const 영희 = new Person('30', 'kimyounghee', 'female');
만든 즉시 생성자 함수가 실행되고, 변수에 클래스의 설계를 가진 새로운 객체, 인스턴스가 할당된다.