⊗jsOpIhPtM 37 of 60 menu

Aizsargātās metodes OOP JavaScript

Privātās metodes netiek mantotas un nav redzamas ārpus klases. Tomēr dažreiz ir nepieciešamas metodes, kas tiek mantotas, bet nav redzamas ārpus klases. Šādas metodes sauc par aizsargātajām (protected). Diemžēl JavaScript neatbalsta šādas metodes.

Tāpēc es ierosinu ieviest noteiktu vienošanos, kas ļauj izveidot šādas metodes. Mēs sāksim šādu metožu nodus ar pasvītrojumu. Faktiski mēs izmantosim veco vispārpieņemto vienošanos par privātajām metodēm. Tikai sauksim šādas metodes par aizsargātām kā norādi uz to, ka tās tiek mantotas, bet mēs neizmantosim tās ārpusē. Tomēr tieši tā tās tiek izmantotas saskaņā ar seno vienošanos.

Tātad, uzrakstīsim vecāka klasi ar aizsargātu metodi:

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

Izmantosim šo aizsargāto metodi bērna klasē:

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

Šajā kodā padariet palīgmetodi aizsargātu:

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; } }
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt