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 не является глобальным объектом. Он может быть получен следующим образом:

js
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 GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
GeneratorFunction
GeneratorFunction() constructor

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Смотрите также