Sobes.tech
Middle+

Aký typ dedičstva sa používa v JavaScript? Existuje viacnásobné dedičstvo u tried?

sobes.tech AI

Odpoveď od AI

V JavaScripte sa používa prototypové dedičstvo, a s nástupom tried (ES6) — je to syntaktický cukor nad prototypmi. Triedy v JS podporujú jednoduché dedičstvo, teda trieda môže dediť iba od jedného rodiča.

V JavaScripte neexistuje viacnásobné dedičstvo tried, ale môžete použiť mixiny — funkcie, ktoré pridávajú metódy do triedy, aby napodobnili viacnásobné dedičstvo.

Príklad jednoduchého dedičstva:

class Animal {
  speak() {
    console.log('Zvuk zvieraťa');
  }
}

class Dog extends Animal {
  speak() {
    console.log('Hau!');
  }
}

const dog = new Dog();
dog.speak(); // Hau!

Príklad mixinu:

const CanFly = Base => class extends Base {
  fly() {
    console.log('Lietanie');
  }
};

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

const eagle = new Eagle();
eagle.fly(); // Lietanie