GeneratorFunction
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2016 г..
Объект GeneratorFunction предоставляет методы для работы с функциями-генераторами. В JavaScript каждая функция-генератор фактически является объектом GeneratorFunction.
Обратите внимание, GeneratorFunction не является глобальным объектом. Он может быть получен следующим образом:
const GeneratorFunction = function* () {}.constructor;
GeneratorFunction является подклассом Function.
Интерактивный пример
const GeneratorFunction = function* () {}.constructor;
const foo = new GeneratorFunction(`
yield 'a';
yield 'b';
yield 'c';
`);
let str = "";
for (const val of foo()) {
str = str + val;
}
console.log(str);
// Expected output: "abc"
Конструктор
GeneratorFunction()-
Создаёт новый объект
GeneratorFunction.
Свойства экземпляра
Также наследует свойства своего родителя Function.
Эти свойства определены в GeneratorFunction.prototype и есть у всех экземпляров GeneratorFunction.
GeneratorFunction.prototype.constructor-
Функция-конструктор, создающая экземпляр объекта. Для экземпляров
GeneratorFunctionначальным значением является конструкторGeneratorFunction. GeneratorFunction.prototype.prototype-
Все функции-генераторы имеют доступ к общему свойству
prototype, значением которого являетсяGenerator.prototype. Каждый экземпляр функции-генератора также имеет собственное свойствоprototype. При вызове функции-генератора возвращается объект генератора, наследуемый от свойстваprototypeфункции-генератора, которая в свою очередь наследуется отGeneratorFunction.prototype.prototype. GeneratorFunction.prototype[@@toStringTag]-
Начальным значением свойства
@@toStringTagявляется строка"GeneratorFunction". Это свойство используется вObject.prototype.toString().
Методы экземпляра
Наследует методы своего родителя Function.
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-generatorfunction-objects> |
Совместимость с браузерами
Loading…