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