GeneratorFunction
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 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® 2025 Language Specification # sec-generatorfunction-objects |
Совместимость с браузерами
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GeneratorFunction | ||||||||||||||
GeneratorFunction() constructor |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support