⊗jsOpIhPtM 37 of 60 menu

Chronione metody w OOP w JavaScript

Prywatne metody nie są dziedziczone i nie są widoczne na zewnątrz klasy. Czasami jednak potrzebne są metody, które są dziedziczone, ale nie są widoczne na zewnątrz klasy. Takie metody nazywane są chronionymi (protected). JavaScript, niestety, nie obsługuje takich metod.

Dlatego proponuję wprowadzić pewną konwencję, pozwalającą tworzyć takie metody. Będziemy zaczynać nazwy takich metod od podkreślenia. Faktycznie wykorzystujemy starą powszechnie przyjętą konwencję o metodach prywatnych. Tylko nazywamy takie metody chronionymi na znak, że są dziedziczone, ale nie będziemy ich używać na zewnątrz. Zresztą, właśnie tak stosuje się je według dawnej konwencji.

A więc, napiszmy klasę nadrzędną z chronioną metodą:

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

Wykorzystajmy tę chronioną metodę w klasie potomnej:

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

W poniższym kodzie zrób metodę pomocniczą chronioną:

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; } }
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć