⊗jsOpIhPtM 37 of 60 menu

Védett metódusok az OOP-ben JavaScriptben

A privát metódusok nem öröklődnek és nem láthatók az osztályon kívül. Néha azonban olyan metódusokra van szükség, amelyek öröklődnek, de nem láthatók az osztályon kívül. Az ilyen metódusokat védett (protected) metódusoknak nevezzük. A JavaScript sajnos nem támogatja az ilyen metódusokat.

Ezért javaslom egy olyan egyezmény bevezetését, ami lehetővé teszi az ilyen metódusok létrehozását. Az ilyen metódusok neveit aláhúzással kezdjük. Lényegében a régi, általánosan elfogadott egyezményt használjuk a privát metódusokra. Csak védettnek nevezzük ezeket a metódusokat, jelezve, hogy öröklődnek, de nem fogjuk használni őket kívülről. Egyébként pont így alkalmazzák őket a régi egyezmény szerint.

Nos, írjunk egy szülő osztályt egy védett metódussal:

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

Használjuk ezt a védett metódust egy gyermek osztályban:

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

A következő kódban tegye a segédmetódust védetté:

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; } }
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás