하나의 모델이 되는 청사진(blue print)= class를 만들고 그 청사진은 객체(object)=instance를 만드는 프로그래밀 패턴이다.
ES5 : class는 함수로 정의 가능
function car(brand, name, color) { // 인스턴스가 만들어질 때 실행되는 코드
}
ES6 : class라는 키워드를 이용해서 정의 할 수도 있다
class Car {
constuctor(brand, name, color) {
// 인스턴스가 만들어질 때 실행되는 코드
최근에는 ES6 방법을 주로 사용함.
‣여기서 보이는 함수는, 객체지향프로그래밍에서 생성자 함수라고 부름
‣인스턴스가 만들어 질 때 실행되는 코드
‣생성자 함수는 return값을 만들지 않음
class 함수를 정의할때 new 키워드를 사용해서 만든다 = 새로운 인스턴스를 만드는 방법
다른함수와 구분하기 위해선 class는 보통 대문자 로 시작한다
### class 속성과 메소드
// 속성의 정의
// **ES5 **
function car(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
// **ES6**
class Car {
constuctor(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
}
❗️this = 인스턴스 객체
this 에 할당한다는 것은 인스턴스에 브랜드, 이름, 색상을 부여 하겠다는 것
// 매소드의 정의
// **ES5 **
function car(brand, name, color) { /*생략*/ }
Car.prototype.refuel = function(){
연료 공급을 구현하는 코드
}
Car.prototype.drive = function(){
운전을 구현하는 코드
}
// **ES6**
class Car {/*생략*/ }
refuel(){
연료 공급을 구현하는 코드
}
drive(){
운전을 구현하는 코드
}
}