Sobes.tech
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(); // Թռչել