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?