Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 entspricht mehr der Intuition, dass es sich um den Prototyp von Generatorobjekten handelt.

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. Sie hat die folgenden Eigenschaftsattribute:

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

Beschreibung

Eine Generatorfunktion-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 und daher GeneratorFunction.prototype als Prototyp hat.)

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 veranschaulicht die Prototyp-Kette einer Generatorfunktion und ihrer Instanzen. Jeder hohle Pfeil zeigt eine Vererbungsbeziehung (d.h. eine Prototyp-Verbindung) an, und jeder volle Pfeil zeigt eine Eigenschaftsbeziehung an. Beachten Sie, dass es keine Möglichkeit 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