⊗jsOpIhPtM 37 of 60 menu

Zaščitene metode v OOP v JavaScript

Zasebne metode se ne dedujejo in niso vidne zunaj razreda. Vendar so včasih potrebne metode, ki se dedujejo, niso pa vidne zunaj razreda. Takšne metode imenujemo zaščitene (protected). JavaScript na žalost ne podpira takih metod.

Zato predlagam, da uvedemo neko dogovorjenost, ki omogoča ustvarjanje takih metod. Poimenovali jih bomo z začetkom metod s podčrtajem. Pravzaprav uporabljamo staro splošno sprejeto dogovorjenost o zaprtih metodah. Le da takšne metode imenujemo zaščitene kot znak, da se dedujejo, vendar jih ne bomo uporabljali zunaj. Pravzaprav se ravno tako uporabljajo po starodavni dogovorjenosti.

Torej, napišimo nadrejeni razred z zaščiteno metodo:

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

Uporabimo to zaščiteno metodo v podrejenem razredu:

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

V naslednji kodi naredite pomožno metodo zaščiteno:

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni