//Es5 클래스는 함수로 정의할 수 있다.
function Car(brand, name, color){
// 인스턴스가 만들어질 떄 실행되는 코드
}
// Es6 에서는 class라는 키워드를 이용해서 정의할 수도 있다.
class Car {
conatructor(brand, name, color){
// 인스턴스가 만들어질 떄 실행되는 코드
}
}
let avante = new Car('hyundai', 'avante', 'black');
let mini = new Car('bmw', 'mini', 'white');
let beatles = new Car('volkswagen', 'beatles', 'red');
// 각각의 인스턴스는 Car라는 클래스의 고유한 속성과, 메소드를 갖는다.
//Es5
function Car(brand, name, color){
this.brand = beand;
this.name = name;
this.color = color;
}
//Es6
class Car {
constructor(brand, name, color){
this.brand = beand;
this.name = name;
this.color = color;
}
}
//Es5
function Car(brand, name, color) (/*생략*/)
Car prototype.refuel = function(){
// 연료 공급을 구현하는 코드
}
Car prototype.drive = function(){
// 운전을 구현하는 코드
}
//Es6
class Car{
constructor(brand, name, color){/* 생략 */)
refuel() {
}
drive() {
}
}
메서드 정의
Car.prototype.refuel
과 같이 prototype
을 이용해야 한다.refuel() {}
, drive() {}
와 같이 작성되어 있는 부분이다. let avante = new Car('hyundai','avante','black');
avante.color;//'black'
avante.drive(); //아반떄가 운전을 시작한다.
let mini = new Car('bmw', 'mini', 'white');
mini.brand; //'bmw'
mini.refuel(); //미니에 연료를 공급한다.