기존의 사용법
const User = function (name, age) {
this.name = name;
this.age = age;
this.showName = function() {
console.log(this.name);
}
}
const mike = new User("Mike", 30);
ES6에 추가된 스펙
class User2 {
constructor(name, age) { //객체를 만들어주는 생성자 메소드
this.name=name;
this.age=age;
}
showName() { //__proto__내부에 존재하게 된다
conosole.log(this.name);
}
}
const tom = new User2("Tom", 19);
extents 상속
class Car {
constructor(color) {
this.color = color;
this.wheels = 4;
}
drive() {
console.log("drive...");
}
stop() {
console.log("STOP!");
}
}
class Bmw extends Car {
constructor(color) {
super(color ); //부모의 생성자 사용
this.navigation = 1;
}
park() {
console.log("PARK");
}
stop() { //method overriding 메소드 오버라이딩
console.log("OFF");
//만약 super.stop()을 사용하면 "STOP!"호출 됨
}
}
const z4 = new Bmw("blue");