此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
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年9月.
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[Symbol.toStringTag][Symbol.toStringTag]属性的初始值是字符串"GeneratorFunction"。该属性被Object.prototype.toString()使用。
实例方法
从其父类Function 继承实例方法。
规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-generatorfunction-objects> |