JavaScript에서 super 키워드는 객체의 부모에게 접근할 수 있는 메커니즘을 제공합니다. super는 클래스 내부에서 주로 사용되며, 다음 두 가지 주요 상황에서 사용된다.
class Parent {
constructor(name) {
this.name = name;
}
}
class Child extends Parent {
constructor(name, age) {
super(name); // 부모 클래스의 constructor 호출
this.age = age;
}
class Parent {
greet() {
console.log("Hello from Parent");
}
}
class Child extends Parent {
greet() {
super.greet(); // 부모 클래스의 greet 메서드 호출
console.log("Hello from Child");
}
}
const child = new Child();
child.greet();
// 출력:
// Hello from Parent
// Hello from Child
constructor(생성자)를 사용하면 인스턴스화된 객체에서 다른 메서드를 호출하기 전에 수행해야 하는 사용자 지정 초기화를 제공할 수 있다.
클래스를 new를 붙여서 (new User("John"))인스턴스 객체로 생성하면 넘겨받은 인수와 함께 constructor가 먼저 실행된다.
이 떄 넘겨받은 인수인 John이 this.name에 할당된다.
class User {
constructor(name) {
this.name = name;
}
sayHi() {
alert(this.name);
}
}
let user = new User("John");
user.sayHi();
class Car {
constructor(brand) {
this.carname = brand;
}// 생성자
present() {
return `I have a ` + this.carname;
}// 메소드
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return super.present() + `, it is a ` + this.model;
}
}
let mycar = new Model("Ford", "Mustang");
mycar.show();