Чтобы добиться наследования классов в 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:
super
: используется для вызова метода родительского класса внутри подкласса.instanceof
: проверяет, является ли объект экземпляром определенного класса.Object.create()
: создает новый объект с указанным объектом-прототипом и свойствами.Object.getPrototypeOf()
: возвращает прототип (т. е. родительский объект) объекта.Object.setPrototypeOf()
: устанавливает прототип (т. е. родительский объект) объекта.