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 | |
---|---|
Schreibbar | ja |
Aufzählbar | nein |
Konfigurierbar | nein |
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 | |
---|---|
Schreibbar | nein |
Aufzählbar | nein |
Konfigurierbar | ja |
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.)
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.
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.
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-generatorfunction.prototype.prototype |
ECMAScript® 2026 Language Specification # sec-generatorfunction-instances-prototype |