Sobes.tech
Middle+

Какъв тип наследяване се използва в JavaScript? Има ли множествено наследяване при класовете?

sobes.tech AI

Отговор от AI

В JavaScript се използва прототипно наследяване, а с появата на класовете (ES6) — синтактичен захар върху прототипите. Класовете в JS поддържат единично наследяване, тоест клас може да наследява само от един родител.

Няма множествено наследяване на класове в JavaScript, но може да се използват миксини — функции, които добавят методи към клас, за да имитират множествено наследяване.

Пример за единично наследяване:

class Animal {
  speak() {
    console.log('Звук на животно');
  }
}

class Dog extends Animal {
  speak() {
    console.log('Бау!');
  }
}

const dog = new Dog();
dog.speak(); // Бау!

Пример за миксин:

const CanFly = Base => class extends Base {
  fly() {
    console.log('Летене');
  }
};

class Bird {}
class Eagle extends CanFly(Bird) {}

const eagle = new Eagle();
eagle.fly(); // Летене