⊗jsOpIhPtM 37 of 60 menu

Mbinu Zilizolindwa katika OOP katika JavaScript

Mbinu za kibinafsi hazirithiwi wala hazionekani nje ya darasa. Wakati mwingine, hata hivyo, zinahitajika mbinu ambazo zinarithiwa, lakini hazionekani nje ya darasa. Mbinu kama hizo huitwa zilizolindwa (protected). Kwa bahati mbaya, JavaScript haitumii mbinu kama hizo.

Kwa hivyo napendekeza kuanzisha makubaliano fulani yanayoruhusu kuunda mbinu kama hizo. Tutaanza majina ya mbinu kama hizo kwa kutumia alama ya chini. Kwa kweli tutatumia makubaliano ya zamani yaliyokubalika kwa pamoja ya mbinu za kibinafsi. Lakini tutaziita mbinu hizi zilizolindwa kama ishara ya kwamba zinarithiwa, lakini hatutazitumia nje. Hata hivyo, ndivyo hasa zinavyotumika kulingana na makubaliano ya zamani.

Basi, wacha tuandike darasa la mzazi na mbinu iliyolindwa:

class User { setName(name) { this.name = name; } getName() { return this._capeFirst(this.name); } _capeFirst(str) { return str[0].toUpperCase() + str.slice(1); } }

Tutumie mbinu hii iliyolindwa katika darasa la mtoto:

class Student extends User { setSurn(surn) { this.surn = surn; } getSurn() { return this._capeFirst(this.surn); } }

Katika msimbo unaofuata fanya mbinu ya usaidizi kuwa iliyolindwa:

class User { setName(name) { if (this._notEmpty(name)) { this.name = name; } } getName() { return this.name; } _notEmpty(str) { return str.length > 0; } } class Employee extends User { setSurn(surn) { if (this._notEmpty(surn)) { this.surn = surn; } } getSurn() { return this.surn; } }
Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa