GeneratorFunction() 构造函数

Baseline 已广泛支持

此特性已非常成熟,可在多种设备和浏览器版本上使用。自 ⁨2016 年 9 月⁩以来,它已在各大浏览器中可用。

GeneratorFunction() 构造函数用于创建 GeneratorFunction 对象。

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

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

GeneratorFunction() 构造函数不应直接使用,并且在 Function() 的描述中提到的所有注意事项都适用于 GeneratorFunction()

语法

js
new GeneratorFunction(functionBody)
new GeneratorFunction(arg1, functionBody)
new GeneratorFunction(arg1, arg2, functionBody)
new GeneratorFunction(arg1, arg2, /* …, */ argN, functionBody)

GeneratorFunction(functionBody)
GeneratorFunction(arg1, functionBody)
GeneratorFunction(arg1, arg2, functionBody)
GeneratorFunction(arg1, arg2, /* …, */ argN, functionBody)

注意: GeneratorFunction() 可以使用或不使用 new 来调用。两者都会创建一个新的 GeneratorFunction 实例。

参数

请参阅 Function()

示例

创建和使用 GeneratorFunction() 构造函数

js
const GeneratorFunction = function* () {}.constructor;
const g = new GeneratorFunction("a", "yield a * 2");
const iterator = g(10);
console.log(iterator.next().value); // 20

规范

规范
ECMAScript® 2026 语言规范
# sec-generatorfunction-constructor

浏览器兼容性

另见