由下图可以看出, 对象animal 在原型链(__proto__
)继承了class Animal所有属性
有关原型链:https://blog.csdn.net/qq_41860203/article/details/110244941
extends 关键字
class Animal {
constructor(name) {
this.speed = 0;
this.name = name;
}
run(speed) {
this.speed = speed;
alert(`${this.name} runs with speed ${this.speed}.`);
}
stop() {
this.speed = 0;
alert(`${this.name} stands still.`);
}
}
class Rabbit extends Animal {
hide() {
alert(`${this.name} hides!`);
}
stop() {
super.stop(); // 调用父类的 stop
this.hide(); // 然后 hide
}
}
let rabbit = new Rabbit("White Rabbit");
rabbit.run(5); // White Rabbit 以速度 5 奔跑
rabbit.stop(); // White Rabbit 停止了。White rabbit hide 了!
super 关键字
执行 super.method(…) 来调用一个父类方法。
执行 super(…) 来调用一个父类 constructor(只能在我们的 constructor 中)