此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

GeneratorFunction() 构造函数

基线 广泛可用

自 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)

备注:无论是否使用 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

规范

规范
ECMAScript® 2027 Language Specification
# sec-generatorfunction-constructor

浏览器兼容性

参见