От автора code.mu: РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsOpIhPtM 37 of 60 menu

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

Приватные методы не наследуются и не видны снаружи класса. Иногда, однако, нужны методы, которые наследуются, но не видны снаружи класса. Такие методы называются защищенными (protected). JavaScript, к сожалению, не поддерживает таких методов.

Поэтому я предлагаю ввести некоторое соглашение, позволяющее создавать такие методы. Будем начинать имена таких методов через подчеркивание. Фактически мы используем старое общепринятое соглашение о закрытых методах. Toлько называем такие методы защищенными в знак того, что они наследуются, но мы не будем использовать их снаружи. Впрочем, именно так они и применяются по древнему соглашению.

Итак, давайте напишем класс-родитель с защищенным методом:

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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить