GeneratorFunction.prototype.prototype

Die prototype-Eigenschaft von GeneratorFunction.prototype wird von allen Generatorfunktionen geteilt. Ihr Wert ist Generator.prototype. Jede Generatorfunktion, die mit der function*-Syntax oder dem GeneratorFunction()-Konstruktor erstellt wird, hat auch ihre eigene prototype-Eigenschaft, deren Prototyp GeneratorFunction.prototype.prototype ist. Wenn die Generatorfunktion aufgerufen wird, wird ihre prototype-Eigenschaft zum Prototyp des zurückgegebenen Generatorobjekts.

Wert

Dasselbe Objekt wie Generator.prototype. GeneratorFunction.prototype.prototype ist der technisch genauere Name, aber Generator.prototype spricht das intuitive Verständnis an, dass es der Prototyp von Generatorobjekten ist.

Eigenschaften von GeneratorFunction.prototype.prototype
Schreibbarja
Aufzählbarnein
Konfigurierbarnein

Die prototype-Eigenschaft jeder GeneratorFunction-Instanz ist ein leeres Objekt ohne Eigenschaften, dessen Prototyp GeneratorFunction.prototype.prototype ist. Es hat die folgenden Eigenschaftsattribute:

Eigenschaften von GeneratorFunction.prototype.prototype
Schreibbarnein
Aufzählbarnein
Konfigurierbarja

Beschreibung

Eine Generatorfunktionen-Instanz hat zwei prototype-Eigenschaften. Die erste ist ihre eigene prototype-Eigenschaft. Die zweite ist die prototype-Eigenschaft auf ihrem Prototyp, welcher GeneratorFunction.prototype ist. (Denken Sie daran, dass jede Generatorfunktion eine Instanz von GeneratorFunction ist, daher hat sie GeneratorFunction.prototype als ihren Prototyp.)

js
function* genFunc() {}
const GeneratorFunctionPrototype = Object.getPrototypeOf(genFunc);
console.log(Object.hasOwn(genFunc, "prototype")); // true
console.log(Object.hasOwn(GeneratorFunctionPrototype, "prototype")); // true

Wenn eine Generatorfunktion aufgerufen wird, wird die prototype-Eigenschaft der Generatorfunktion zum Prototyp des zurückgegebenen Generatorobjekts.

js
const gen = genFunc();
const proto = Object.getPrototypeOf;
console.log(proto(gen) === genFunc.prototype); // true
console.log(proto(proto(gen)) === GeneratorFunctionPrototype.prototype); // true

Das folgende Diagramm illustriert die Prototypenkette einer Generatorfunktion und ihrer Instanzen. Jeder hohle Pfeil zeigt eine Vererbungsbeziehung (d.h. eine Prototypverbindung) an, und jeder volle Pfeil zeigt eine Eigenschaftsbeziehung an. Beachten Sie, dass es keinen Weg gibt, von gen auf genFunc zuzugreifen — sie haben nur eine instanceof-Beziehung.

Das Vererbungsdiagramm von Generatoren und Generatorfunktionen

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-generatorfunction.prototype.prototype
ECMAScript® 2026 Language Specification
# sec-generatorfunction-instances-prototype

Siehe auch