02. Class Declaration
Синтаксис для классов выглядит так:
Определения классов:
Класс нельзя вызывать без
new
, будет ошибка.Объявление класса с точки зрения области видимости ведёт себя как
let
.Имеют блочную область видимости
Не формируют свойство глобального объекта.
Не поднимаются.
Класс-родитель должен быть объявлен выше.
[extends Родитель]
- может быть выражением, результатом которого должен быть класс или функция-конструктор.Тело класса может содержать только методы, но не данные.
Причина того, что объявления классов не поднимаются заключается в том, что связь extends
может содержать выражения, которые должны выполняться в соответствующее время.
Ограничение на подъем классов не такое радикальное. Можно ссылаться на класс до его объявления, но этот не должен выполняться:
Class expressions
Так же, как и Function Expression, классы можно задавать, в любом выражении и внутри вызова функции. Это называется Class Expression. У класса может быть опциональное имя, доступное только внутри класса:
Last updated
Was this helpful?