Wito wa Mbinu Iliyobadilishwa Katika OOP katika JavaScript

Wakati wa kubadilisha, mrithi hupoteza ufikiaji wa mbinu iliyobadilishwa ya mzazi. Hata hivyo, bado inawezekana kuupata. Hii inafanywa kwa kutumia neno kuu super, ambacho kinaonyesha darasa la mzazi.

Tuangalie mfano, wakati tunaweza kuhitaji ufikiaji kwa mbinu ya mzazi. Tuchukulie tuna darasa la mzazi lifuatalo:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.name;
  }
}

Tuchukulie katika darasa la mrithi tumebadilisha mbinu ya mzazi:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('kosa la jina la mwanafunzi');
    }
  }
}

Inaweza kubainika kuwa katika mbinu iliyobadilishwa wakati sharti linatimilika kimsingi kinatekelezwa msimbo wa mbinu ya mzazi. Inasababisha kurudia msimbo usiohitajika.

Inaweza kuepukwa, ikiwa tutaita mbinu ya mzazi. Hebu tufanye hivyo:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // mbinu ya mzazi
    } else {
      throw new Error('kosa la jina la mwanafunzi');
    }
  }
}
Задание 1

Kuna msimbo ufuatao:

javascriptclass User {
  setAge(age) {
    if (age >= 0) {
      this.age = age;
    } else {
      throw new Error('unahitaji umri zaidi ya 0');
    }
  }
}
class Employee {
  setAge(age) {
    if (age <= 120) {
      if (age >= 0) {
        this.age = age;
      } else {
        throw new Error('unahitaji umri zaidi ya 0');
      }
    } else {
      throw new Error('unahitaji umri chini ya 120');
    }
  }
}

Katika darasa Employee sahihisha kiweka umri, ukitumia mbinu asili ya mzazi.