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(); // Учуу