Sobes.tech
Middle+

Kāda veida manto JavaScript tiek izmanto? Vai klasēs ir daudzveidīga mantošana?

sobes.tech AI

Atbilde no AI

JavaScript tiek izmantota prototipiskā mantošana, un ar klases (ES6) parādīšanos — tas ir sintaktisks cukurs virs prototipiem. JS klases atbalsta vienkāršu mantošanu, tas ir, klase var manto tikai no viena vecāka.

JavaScript klases neparedz daudzveidīgu mantošanu, bet var izmantot miksus — funkcijas, kas pievieno metodes klasei, lai imitētu daudzveidīgu mantošanu.

Vienkāršas mantošanas piemērs:

class Animal {
  speak() {
    console.log('Dzīvnieka skaņa');
  }
}

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

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

Miksa piemērs:

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

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

const eagle = new Eagle();
eagle.fly(); // Lidošana