Spec-Zone.ru › JavaScript

GeneratorFunction

Базовый уровень Широко доступно

Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 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 += val;
}

console.log(str);
// Expected output: "abc"

Конструктор

GeneratorFunction()
Создает новый объект GeneratorFunction.

Свойства экземпляра

Также наследует свойства экземпляра от родительского Function.

Эти свойства определены в GeneratorFunction.prototype и являются общими для всех экземпляров GeneratorFunction.

GeneratorFunction.prototype.constructor
Функция-конструктор, создавшая объект экземпляра. Для экземпляров GeneratorFunction начальное значение — это конструктор GeneratorFunction.
GeneratorFunction.prototype.prototype
Все функции-генераторы совместно используют свойство prototype, которым является Generator.prototype. Каждая функция-генератор, созданная с помощью синтаксиса function* или конструктора GeneratorFunction(), также имеет свое собственное свойство prototype, чей прототип — GeneratorFunction.prototype.prototype. Когда вызывается функция-генератор, ее свойство prototype становится прототипом возвращаемого объекта-генератора.
GeneratorFunction.prototype[Symbol.toStringTag]
Начальное значение свойства [Symbol.toStringTag] — это строка "GeneratorFunction". Это свойство используется в Object.prototype.toString().

Эти свойства являются собственными свойствами каждого экземпляра GeneratorFunction.

prototype
Используется, когда функция применяется как конструктор с оператором new. Оно станет прототипом нового объекта.

Методы экземпляра

Наследует методы экземпляра от родительского Function.

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-generatorfunction-objects

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
GeneratorFunction
39
13
26
26
10
39
26
26
10
4.0
39
10
1.0.0
1.0
4.0.0
GeneratorFunction
39
13
26
26
10
39
26
26
10
4.0
39
10
1.0.0
1.0
4.0.0

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

  • function*
  • function* expression
  • Function
  • AsyncFunction
  • AsyncGeneratorFunction
  • Функции

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API