JavaScript 继承是一种强大的特性,它允许我们创建可重用的代码,并使对象之间共享属性和方法。下面是一些关于 JavaScript 继承的基础知识。

什么是继承?

继承是面向对象编程中的一个核心概念,它允许一个对象(子类)继承另一个对象(父类)的属性和方法。这样,我们可以避免重复代码,并使代码更加模块化。

基于原型的继承

在 JavaScript 中,继承通常是通过原型链实现的。每个对象都有一个原型(prototype)属性,它指向其构造函数的原型对象。

function Animal(name) {
  this.name = name;
}

Animal.prototype.sayName = function() {
  console.log(this.name);
};

function Dog(name, breed) {
  Animal.call(this, name);
  this.breed = breed;
}

Dog.prototype = new Animal();

Dog.prototype.sayBreed = function() {
  console.log(this.breed);
};

在上面的例子中,Dog 构造函数通过调用 Animal.call(this, name) 来继承 Animal 的属性和方法。然后,我们将 Animal 的原型设置为 Dog 的原型,这样 Dog 的实例就可以访问 Animal 的原型方法。

类式继承

ES6 引入了 class 关键字,这使得类式继承变得更加直观。

class Animal {
  constructor(name) {
    this.name = name;
  }

  sayName() {
    console.log(this.name);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this.breed = breed;
  }

  sayBreed() {
    console.log(this.breed);
  }
}

在这个例子中,Dog 类通过 extends 关键字继承自 Animal 类。

扩展阅读

如果你想要了解更多关于 JavaScript 继承的知识,可以阅读本站的 JavaScript 类和继承

JavaScript 继承