Functional Inheritance Flashcards

(4 cards)

1
Q

Как наследуется класс в функциональном наследовании?

A

Необходимо в наследуемом классе вызвать конструктор родителя через call() (или через apply(this, arguments), если есть параметры) и передать текущий контекст (объект) в самом начале конструктора. В наш объект будут записаны все методы и свойства объекта(конструктора)-родителя.

Далее наш конструктор выполнятся и добавляет свои свойства и методы.

Таким образом мы получаем объект, который включает в себя свойства и методы объекта родителя и наследника.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Геттер и сеттер в одном методе

A

Реализуется через проверку длины arguments и если он пуст, то возвращает значение (геттер) локальной переменной с таким же названием, как и метод. Если значение передано (сеттер) присваиваем его локальной переменной.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Защищенные свойства

A

В родительском объекте защищенные свойства именуются с добавлением нижнего подчеркивания в начало имени.
Например, this._prop = prop;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Переопределение родительского метода

A

Можно полностью переназначить родительский метод, определив его в классе. А для “расширения” родительский метод сохраняется в переменную и вызывается в новом методе с передачей текущего контекста call(this). Либо можно в родителе сохранить контекст в переменную self и вызывать родительский метод без передачи контекста.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly