06. Callable entities
В ES6 существуют следующие вызываемые сущности. Для всех них выражение typeof вернет строку function.
Традиционные функции
В строгом режиме
thisравенundefined, а в нестрогом режиме - это глобальный объект.
Функции-генераторы
Правила
thisкак для обычной функции.Функция генератор никогда не указывает на объект-генератора, которая она возвращает.
Arrow-функции
Не имеют собственного контекста - все окружение получают лексически из родительского окружения.
Предпочитайте arrow-функции как функции обратного вызова.
Если arrow-функции используются как методы объекта, то такие функции по прежнему не будут иметь собственного
this, а получат его правилам лексической области видимости.
Методы
thisхранит значение объекта, которому принадлежит данный метод.Если функция-метод использует
super, то она сохраняет привязку к своему окружению и[[HomeObject]].
Методы-генераторы
Методы генераторы ведут себя как генераторы (возвращают объект генератора), но помимо этого в них можно использовать
thisиsuper.
Классы
thisуказывает на создаваемый объект.Классы нельзя вызывать как функции, только как конструкторы.
Вызовы, включающие в себя
superмогут находиться только в двух местах в программе: вызовsuperчерез метод и вызовsuperв конструкторе.
Async-функции - функции, оперирующие Promise.
Last updated
Was this helpful?