⊗jsOpIhPtM 37 of 60 menu

Kaitstud meetodid OOP-s JavaScriptis

Privaatseid meetodeid ei pärine ega ole nähtavad klassist väljaspool. Mõnikord on aga vaja meetodeid, mis pärinevad, kuid ei ole nähtavad klassist väljaspool. Selliseid meetodeid nimetatakse kaitstud (protected). JavaScript kahjuks ei toeta selliseid meetodeid.

Seetõttu teen ettepaneku kasutusele võtta teatud kokkulepe, mis võimaldab selliseid meetodeid luua. Alustame selliste meetodite nimesid alakriipsuga. Tegelikult kasutame vana üldtunnustatud kokkulepet privaatsetest meetoditest. Aga nimetame selliseid meetodeid kaitstuteks tunnusena sellest, et nad pärinevad, kuid me ei kasuta neid väljaspool. Muide, täpselt nii neid ka kasutatakse iidse kokkuleppe kohaselt.

Nii et kirjutame vanemaklassi kaitstud meetodiga:

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

Kasutame seda kaitstud meetodit lapsklassis:

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

Tehke järgmises koodis abistav meetod kaitstuduks:

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; } }
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu