GeneratorFunction 对象为生成器函数提供了方法。在 JavaScript 中,每个生成器函数实际上都是一个 GeneratorFunction 对象。

请注意,GeneratorFunction 不是全局对象。可以通过以下代码来获取它:

const GeneratorFunction = function* () {}.constructor;

GeneratorFunctionFunction 的子类。

{{InteractiveExample("JavaScript Demo: GeneratorFunction()", "taller")}}

```js interactive-example 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" ```

构造函数

  • {{jsxref("GeneratorFunction/GeneratorFunction", "GeneratorFunction()")}}
    • : 创建一个新的 GeneratorFunction 对象。

实例属性

也从其父类 Function 继承实例属性

这些属性定义于 GeneratorFunction.prototype 并由所有 GeneratorFunction 实例所共享。

  • {{jsxref("Object/constructor", "GeneratorFunction.prototype.constructor")}}
    • : 创建实例对象的构造函数。对于 GeneratorFunction 实例,其初始值是 {{jsxref("GeneratorFunction/GeneratorFunction", "GeneratorFunction")}} 构造函数。
  • GeneratorFunction.prototype.prototype
    • : 所有生成器函数共享同一个 prototype 属性,即 Generator.prototype。每个生成器函数实例也有自己的 prototype 属性。当生成器函数被调用时,返回的生成器对象从生成器函数继承 prototype 属性,而该属性又继承自 GeneratorFunction.prototype.prototype
  • GeneratorFunction.prototype[Symbol.toStringTag]
    • : [Symbol.toStringTag] 属性的初始值是字符串 "GeneratorFunction"。该属性被 Object.prototype.toString() 使用。

实例方法

从其父类 Function 继承实例方法