GeneratorFunction
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
TheGeneratorFunction
object provides methods forgenerator functions. In JavaScript, every generator function is actually aGeneratorFunction
object.
Note thatGeneratorFunction
isnot a global object. It can be obtained with the following code:
const GeneratorFunction = function* () {}.constructor;
GeneratorFunction
is a subclass ofFunction
.
Try it
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"
Constructor
GeneratorFunction()
Creates a new
GeneratorFunction
object.
Instance properties
Also inherits instance properties from its parentFunction
.
These properties are defined onGeneratorFunction.prototype
and shared by allGeneratorFunction
instances.
GeneratorFunction.prototype.constructor
The constructor function that created the instance object. For
GeneratorFunction
instances, the initial value is theGeneratorFunction
constructor.GeneratorFunction.prototype.prototype
All generator functions share the same
prototype
property, which isGenerator.prototype
. Each generator function created with thefunction*
syntax or theGeneratorFunction()
constructor also has its ownprototype
property, whose prototype isGeneratorFunction.prototype.prototype
. When the generator function is called, itsprototype
property becomes the prototype of the returned generator object.GeneratorFunction.prototype[Symbol.toStringTag]
The initial value of the
[Symbol.toStringTag]
property is the string"GeneratorFunction"
. This property is used inObject.prototype.toString()
.
These properties are own properties of eachGeneratorFunction
instance.
Instance methods
Inherits instance methods from its parentFunction
.
Specifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-generatorfunction-objects |