⊗jsOpIhCOM 32 of 60 menu

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:

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

Tuchukulie katika darasa la mrithi tumebadilisha mbinu ya mzazi:

class 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:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // mbinu ya mzazi } else { throw new Error('kosa la jina la mwanafunzi'); } } }

Kuna msimbo ufuatao:

class 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.

bnuzcrokatr