Наследование классов JavaScript: расширение классов и методы наследования

Чтобы добиться наследования классов в JavaScript, вы можете использовать ключевое слово «extends» вместе с ключевым словом «super», чтобы создать подкласс, который наследует свойства и методы родительского класса. Вот пример:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(this.name + ' makes a sound');
  }
}
class Dog extends Animal {
  constructor(name) {
    super(name);
  }
  speak() {
    console.log(this.name + ' barks');
  }
}
const dog = new Dog('Buddy');
dog.speak(); // Output: Buddy barks

В приведенном выше коде класс Dogрасширяет класс Animalс помощью ключевого слова extends. Ключевое слово superиспользуется в конструкторе класса Dogдля вызова конструктора родительского класса и наследования свойства name. Метод speakпереопределяется в классе Dog, чтобы обеспечить другую реализацию.

Вот несколько дополнительных методов, обычно используемых при наследовании классов JavaScript:

  1. super: используется для вызова метода родительского класса внутри подкласса.
  2. instanceof: проверяет, является ли объект экземпляром определенного класса.
  3. Object.create(): создает новый объект с указанным объектом-прототипом и свойствами.
  4. Object.getPrototypeOf(): возвращает прототип (т. е. родительский объект) объекта.
  5. Object.setPrototypeOf(): устанавливает прототип (т. е. родительский объект) объекта.