Sobes.tech
Middle+

Koji tip nasleđivanja se koristi u JavaScript-u? Da li postoji višestruko nasleđivanje kod klasa?

sobes.tech АИ

Одговор од АИ

U JavaScript-u se koristi prototipsko nasleđivanje, a sa pojavom klasa (ES6) — sintaktički šećer preko prototipa. Klase u JS podržavaju jednostruko nasleđivanje, tj. klasa može nasleđivati samo od jednog roditelja.

U JavaScript-u ne postoji višestruko nasleđivanje klasa, ali se mogu koristiti mixin-i — funkcije koje dodaju metode u klasu da bi imitirale višestruko nasleđivanje.

Primer jednostrukog nasleđivanja:

class Animal {
  speak() {
    console.log('Zvuk životinje');
  }
}

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

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

Primer mixina:

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

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

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