⊗jsOpIhPtM 37 of 60 menu

Защитени методи в ООП в JavaScript

Частните методи не се наследяват и не се виждат отвън класа. Понякога обаче са необходими методи, които се наследяват, но не се виждат отвън класа. Такива методи се наричат защитени (protected). JavaScript, за съжаление, не поддържа такива методи.

Затова предлагам да въведем някакво споразумение, позволяващо създаването на такива методи. Ще започваме имената на такива методи с долна черта. Фактически ние използваме старото общоприето споразумение за частни методи. Само наричаме такива методи защитени в знак на това, че те се наследяват, но ние няма да ги използваме отвън. Въпреки това, точно така те се прилагат по древното споразумение.

И така, нека напишем родителски клас с защитен метод:

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

Нека използваме този защитен метод в дъщерния клас:

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

В следния код направете помощния метод защитен:

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; } }
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне