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(); // ფრენა