GeneratorFunction 对象为生成器函数提供了方法。在 JavaScript 中,每个生成器函数实际上都是一个 GeneratorFunction 对象。
请注意,GeneratorFunction 不是全局对象。可以通过以下代码来获取它:
const GeneratorFunction = function* () {}.constructor;
GeneratorFunction 是 Function 的子类。
{{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 继承实例方法。