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.

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)

备注:无论是否使用 new 调用 GeneratorFunction(),都可以创建一个新的 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

规范

Specification
ECMAScript Language Specification
# sec-generatorfunction-constructor

浏览器兼容性

BCD tables only load in the browser

参见