객체 지향 프로그래밍은 하나의 모델이 되는 청사진을 만들고 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴이다.
이 때 청사진을 class라 부르고
청사진을 바탕으로 한 객체는 instance라 부른다.
생성자 함수는 두가지 특징이 있다.
1. 함수 이름의 첫 글자는 대문자로 시작한다.
2. 반드시 `new` 연산자를 붙여 실행한다.
생성자 함수는 return값을 만들지 않는다.
반환할 것들은 모두this
에 저장되고 이this
는 자동으로 반환되기 때문에
return문을 사용할 필요가 없다.
클래스를 만드는 새로운 문법은 ES6에 도입되었다.
//ES5
function Car(brand, nane, color) {
//인스턴스가 만들어질때 실행되는 코드
}
//ES6
class Car {
constructor(brand, name, color) {
//인스턴스가 만들어질때 실행되는 코드
}
}
새로운 instance를 만드는 방법으로 new
키워드를 사용한다.
new
연산자가 실행되면 생성자 함수가 실행되며
변수에 클래스의 설계를 가진 instance가 할당된다.
new 연산자는 유사한 객체를 여러 개 만들어야 할 때 쓰인다.
new 연산자와 생성자 함수를 사용하면 유사한 객체 여러개를 쉽게 만들 수 있다.
this
는 instance객체를 의미한다. parameter로 온 이름은 생성시 지정하는 값,
this에 할당한다는 것은 만들어진 instance에 내 이름을 부여하는 의미로 해석된다.
//ES5
function Car(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
//ES6
class Car {
constructor (brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
}
주어진 ES5 방식을 ES6방식으로 바꿔보자
ES5
ES6