GeneratorFunction
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
Please help us by answering a few questions.
GeneratorFunction
对象为生成器函数提供了方法。在 JavaScript 中,每个生成器函数实际上都是一个 GeneratorFunction
对象。
请注意,GeneratorFunction
不是全局对象。可以通过以下代码来获取它:
const GeneratorFunction = function* () {}.constructor;
GeneratorFunction
是 Function
的子类。
尝试一下
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® 2025 Language Specification # sec-generatorfunction-objects |
浏览器兼容性
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GeneratorFunction | ||||||||||||||
GeneratorFunction() constructor |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support