클래스는 객체지향 프로그래밍의 핵심이다
객체지향 프로그래밍이란 프로그램을 객체들로 구성하고 객체들 간에 서로 상호작용하도록 작성하는 방법이다.
클래스는 객체(object)를 잘 설계하기 위한 틀이다. 이 때의 객체는 특정로직을 갖고 있는 행동(method)와 변경 가능한 상태(멤버 변수)를 가진다.
즉 원하는 구조의 객체 틀을 짜놓고 비슷한 모양의 객체를 공장처럼 찍어낼 수 있다.
const morning = new Car('Morning', 2000000);
class Car {
constructor(name, price) {
this.name = name;
this.price = price;
}
}
Car는 class 이름이다. 항상 대문자로 시작하고 카멜케이스로 작성해야한다.
Car class의 instance를 생성할 때마다 constructor() 메서드가 호출된다.
위 예에서 constructor() 메서드는 name, price 2개의 argument(인자)를 받는다.
constructor() 메서드에는 this 키워드를 사용했는데 이때 this는 해당 instance를 의미한다.
constructor()에서 인자로 넘어오는 name과 price를 사용해 Car instance의 name, price 프로퍼티에 값을 할당했다.
이렇게 클래스 내에서 name, price와 같이 변경가능한 상태값이자 class 내의 컨텍스트에서 어느 곳에서나 사용할 수있는 변수를 '멤버변수'라고 한다.
멤버변수는 this키워드로 접근한다.
const morning = new Car('Morning', 20000000);