⊗jsOpIhPtM 37 of 60 menu

Chránené metódy v OOP v JavaScripte

Privátne metódy sa nededia a nie sú viditeľné zvonku triedy. Niekedy však sú potrebné metódy, ktoré sa dedia, ale nie sú viditeľné zvonku triedy. Takéto metódy sa nazývajú chránené (protected). JavaScript, bohužiaľ, nepodporuje takéto metódy.

Preto navrhujem zaviesť určitú dohodu, ktorá umožňuje vytvárať takéto metódy. Budeme začínať mená takýchto metód podčiarkovníkom. V podstate využijeme starú všeobecne prijatú dohodu o privátnych metódach. Len budeme takéto metódy nazývať chránenými na znamenie toho, že sa dedia, ale nebudeme ich používať zvonku. Avšak, práve tak sa používajú podľa starej dohody.

Takže, napíšme rodičovskú triedu s chránenou metódou:

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

Využime túto chránenú metódu v odvodenej triede:

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

V nasledujúcom kóde urobte pomocnú metódu chránenou:

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; } }
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť