- 在子类构造函数中使用
- 含义与作用:在子类构造函数中,
super()
用于调用父类的构造函数。这是在JavaScript子类继承中初始化继承自父类的属性所必需的步骤。在调用 super()
之前,this
关键字在子类构造函数中是不可用的。
- 代码示例:
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
}
let myDog = new Dog('Buddy', 'Golden Retriever');
console.log(myDog.name); // 输出: Buddy
console.log(myDog.breed); // 输出: Golden Retriever
- 在子类的方法中使用
- 含义与作用:在子类的方法中,
super
关键字用于访问和调用被当前子类覆盖的父类方法。这使得子类可以复用父类的方法逻辑,并在此基础上进行扩展。
- 代码示例:
class Animal {
speak() {
return 'I am an animal';
}
}
class Dog extends Animal {
speak() {
let parentSpeak = super.speak();
return `${parentSpeak} and I am a dog`;
}
}
let myDog = new Dog();
console.log(myDog.speak());
// 输出: I am an animal and I am a dog