9.1 클래스란?


: 여러 가지 유사한 객체를 쉽게 생성하는 자바스트립트 최신 문법(ES6+)

보통 자바스크립트에서 객체를 정의할 때 다음과 같은 객체 정의 문법 사용

let cap = {
    name: '캡틴',
    skill: '방패 던지기'
}

let moon = {
    name: '동민',
    skill: 'typescript'
}

→ name과 skill이라는 공통 속성을 가짐

→ 이렇게 되면 일일이 객체를 정의하기보다는 함수를 사용하는 것이 유리

function Person(name, skill) {
    this.name = name;
    this.skill = skill;
}

let cap = new Person('캡틴', '방패 던지기');
let moon = new Person('동민', 'typescript');

→ 생성자 함수는 new라는 키워드를 붙여서 호출하면 새로운 객체를 생성해줌

위의 생성자 함수를 최신 자바스크립트 문법으로 표현하면 다음과 같음

class Person {
    constructor(name, skill) {
        this.name = name;
        this.skill = skill;
    }
}

→ Person 클래스는 Person 생성자 함수와 코드는 다르지만 역할이 동일

생성자 함수라는 일반적인 관례를 문법 레벨로 끌어올린 것이 클래스