title: "class" category: [js] tags: [javascript, class, es6]
class
class는 ES6에서 소개된 문법으로 기존의 프로토타입 기반 상속에 비해 객체 생성과 상속을 다루기 훨씬 간결하고 쉬워졌다.
class Animal {
constructor() {
this.stand = false;
}
bark() {
console.log('으르렁!');
}
}
let lion = new Animal();
lion.bark();
console.assert(!lion.stand, '사자가 직립보행한다고?');
상속을 받는 경우, 생성자를 구현할 때 반드시 super()
메서드를 추가해야 한다.
class Dog extends Animal {
bark() {
console.log('멍멍');
}
}
let jindo = new Dog();
jindo.bark();
console.assert(!jindo.stand, '진돗개가 직립보행한다고?');
class Penguin extends Animal {
constructor() {
super();
this.stand = true;
}
bark() {
console.log('펭펭..?');
}
}
let gentoo = new Penguin();
gentoo.bark();
console.assert(gentoo.stand, '젠투펭귄이 기어간다고? 그럴지도...?');