GeneratorFunction
GeneratorFunction 对象为生成器函数提供了方法。在 JavaScript 中,每个生成器函数实际上都是一个 GeneratorFunction 对象。
请注意,GeneratorFunction 不是全局对象。可以通过以下代码来获取它:
js
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 继承实例方法。
规范
| 规范 |
|---|
| ECMAScript® 2027 Language Specification # sec-generatorfunction-objects |