用js es5的语法实现构造函数的继承
时间: 2024-02-27 18:55:22 浏览: 78
全面分析JavaScript 继承
好的,以下是用 ES5 的语法实现构造函数的继承的例子:
```javascript
function Animal(name) {
this.name = name;
}
Animal.prototype.sayHello = function() {
console.log(`Hello, my name is ${this.name}.`);
}
function Dog(name, breed) {
Animal.call(this, name);
this.breed = breed;
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.sayBreed = function() {
console.log(`I am a ${this.breed} dog.`);
}
const fido = new Dog('Fido', 'Labrador Retriever');
fido.sayHello(); // Output: Hello, my name is Fido.
fido.sayBreed(); // Output: I am a Labrador Retriever dog.
```
在这个例子中,我们有两个构造函数:`Animal` 和 `Dog`。`Dog` 继承自 `Animal`。我们使用 `call` 方法在 `Dog` 构造函数中调用 `Animal` 构造函数,并传递 `this` 和 `name` 参数。然后,我们使用 `Object.create` 方法创建一个新对象,该对象的原型是 `Animal.prototype`,并将其分配给 `Dog.prototype`。最后,我们重置 `Dog.prototype.constructor` 属性以指向 `Dog` 构造函数,并添加一个新的 `sayBreed` 方法。最终,我们创建了一个 `Dog` 实例 `fido`,并调用了 `sayHello` 和 `sayBreed` 方法。
阅读全文