05 Модуль -- 04 ES6 классы Flashcards
Класс — это
конструктора вместе с прототипом.
Какой метод должен присутствовать в объявлении класса обязательно?
Mетод constructor
Сколько может быть конструкторов в классе?
В классе должен быть только один конструктор, иначе будет ошибка.
Куда записываются методы класса?
В prototype
Пример записи метода класса
class Guest { // Аналог функции-конструктора constructor(name, roomNumber) { this.name = name; this.roomNumber = roomNumber; }
// Аналог Guest.prototype.getFullInfo getFullInfo() { console.log(` Guest ${this.name} Room number ${this.roomNumber} `); } }
const mango = new Guest(‘Mango’, 26);
mango.getFullInfo(); // Guest Mango // Room number 26
Пример геттера
get name() { return this.name; } // обращение к get и set не требует вызова - т.е. без () console.log(mango.name); // Mango
Пример сеттера
set name(value) { this.name = value; } mango.name = 'Mango the Fluffy'; console.log(mango.name); // Mango the Fluffy
Как называются собственные свойства класса и собственные методы класса для вызова по имени класса, без создания объекта ?
Называют статическими
Какое служебное слово нужно добавить для создания статического метода или свойства?
static
Наследование классов принцип
Это означает, что мы можем создавать новые классы, которые наследуют все от другого класса, но при этом добавляют уникальную информацию для себя.
Какое слово указывает на родительский класс (чьи свойства будут унаследованы)
extends
Если у потомка есть свой constructor, то чтобы в нём вызвать конструктор родителя какой метод нужно использовать?
Метод super() с аргументами для constructor родителя. Вызвать конструктор родителя можно только изнутри конструктора потомка.
Какой метод в конструкторе потомка мы обязаны вызвать до первого обращения к ключевому слову this?
До вызова super() не существует this, так как по спецификации в этом случае именно super инициализирует this.