extends
부모 클래스의 속성이나 메서드를 상속받을 수 있음
class Bootcamp {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Hello ${this.name}`);
}
}
class Codestates extends Bootcamp {
sayMyName() {
console.log(`My name is ${this.name}`);
}
}
const codestates = new Codestates('codestates');
codestates.sayHello();
codestates.sayMyName();
super
부모 클래스의 속성이나 메서드를 참조할 때 사용
class Calculate {
constructor(num1, num2) {
this.num1 = num1;
this.num2 = num2;
}
plus() {
return this.num1 + this.num2;
}
}
class Negative extends Calculate {
convertToNegative() {
return super.plus() * -1;
}
}
const result = new Negative(2,3);
result.convertToNegative();
만약 자식 클래스에서 부모 클래스의 속성, 메서드를 super 없이 참조한다면, ReferenceError 발생
class Negative extends Calculate {
convertToNegative() {
return plus() * -1;
}
}
const result = new Negative(2,3);
result.convertToNegative();