This page was translated from English by the community.Learn more and join the MDN Web Docs community.
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.
In this article
Интерактивный пример
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> |