Functional Inheritance Flashcards
(4 cards)
Как наследуется класс в функциональном наследовании?
Необходимо в наследуемом классе вызвать конструктор родителя через call() (или через apply(this, arguments), если есть параметры) и передать текущий контекст (объект) в самом начале конструктора. В наш объект будут записаны все методы и свойства объекта(конструктора)-родителя.
Далее наш конструктор выполнятся и добавляет свои свойства и методы.
Таким образом мы получаем объект, который включает в себя свойства и методы объекта родителя и наследника.
Геттер и сеттер в одном методе
Реализуется через проверку длины arguments и если он пуст, то возвращает значение (геттер) локальной переменной с таким же названием, как и метод. Если значение передано (сеттер) присваиваем его локальной переменной.
Защищенные свойства
В родительском объекте защищенные свойства именуются с добавлением нижнего подчеркивания в начало имени.
Например, this._prop = prop;
Переопределение родительского метода
Можно полностью переназначить родительский метод, определив его в классе. А для “расширения” родительский метод сохраняется в переменную и вызывается в новом методе с передачей текущего контекста call(this). Либо можно в родителе сохранить контекст в переменную self и вызывать родительский метод без передачи контекста.