在JavaScript中实现模拟类的继承和多态有多种方式,其中比较常用的是使用原型和构造函数相结合的方式,也称为组合继承。
具体实现步骤如下:
function Animal(name) {
this.name = name;
}
Animal.prototype.sayHello = function() {
console.log(`Hello, I'm ${this.name}`);
}
function Dog(name, color) {
Animal.call(this, name);
this.color = color;
}
Dog.prototype = new Animal();
Dog.prototype.sayHello = function() {
console.log(`Wang Wang, I'm ${this.name}`);
}
const animal = new Animal('Animal');
animal.sayHello(); // Hello, I'm Animal
const dog = new Dog('Tommy', 'white');
dog.sayHello(); // Wang Wang, I'm Tommy
其中,关键词有:原型、构造函数、组合继承、多态。