⊗jsOpIhPtM 37 of 60 menu

Skyddade metoder i OOP i JavaScript

Privata metoder ärvs inte och är inte synliga utanför klassen. Ibland behövs dock metoder som ärvs, men inte är synliga utanför klassen. Sådana metoder kallas skyddade (protected). JavaScript stöder tyvärr inte sådana metoder.

Därför föreslår jag att vi inför en viss konvention som möjliggör skapandet av sådana metoder. Låt oss börja namnen på sådana metoder med ett understreck. I praktiken använder vi den gamla allmänt accepterade konventionen för privata metoder. Men vi kallar sådana metoder för skyddade för att indikera att de ärvs, men vi kommer inte att använda dem utanför. För övrigt är det precis så de används enligt den gamla konventionen.

Så, låt oss skriva en föräldraklass med en skyddad metod:

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

Låt oss använda denna skyddade metod i en underklass:

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

Gör hjälpmetoden skyddad i följande kod:

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; } }
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa