⊗jsOpIhPtM 37 of 60 menu

Beschermde methoden in OOP in JavaScript

Privé methoden worden niet geërfd en zijn niet zichtbaar van buiten de klas. Soms zijn er echter methoden nodig, die worden geërfd, maar niet zichtbaar zijn van buiten de klas. Dergelijke methoden worden beschermd (protected) genoemd. JavaScript ondersteunt helaas geen dergelijke methoden.

Daarom stel ik voor om een bepaalde afspraak in te voeren, waarmee dergelijke methoden kunnen worden gemaakt. Laten we de namen van dergelijke methoden laten beginnen met een underscore. Feitelijk gebruiken we de oude algemeen aanvaarde afspraak over privé methoden. Alleen noemen we zulke methoden beschermd als teken dat ze worden geërfd, maar we zullen ze niet gebruiken van buitenaf. Overigens, zo worden ze al volgens de oude afspraak toegepast.

Laten we dus een ouderklasse schrijven met een beschermde methode:

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

Laten we deze beschermde methode gebruiken in een subklasse:

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

Maak in de volgende code de helpermethode beschermd:

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; } }
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren