GeneratorFunction

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Das GeneratorFunction-Objekt bietet Methoden für Generatorfunktionen. In JavaScript ist jede Generatorfunktion tatsächlich ein GeneratorFunction-Objekt.

Beachten Sie, dass GeneratorFunction kein globales Objekt ist. Es kann mit folgendem Code erhalten werden:

js
const GeneratorFunction = function* () {}.constructor;

GeneratorFunction ist eine Unterklasse von Function.

Probieren Sie es aus

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"

Konstruktor

GeneratorFunction()

Erstellt ein neues GeneratorFunction-Objekt.

Instanz-Eigenschaften

Erbt auch Instanz-Eigenschaften von seinem Elternteil Function.

Diese Eigenschaften sind auf GeneratorFunction.prototype definiert und werden von allen GeneratorFunction-Instanzen geteilt.

GeneratorFunction.prototype.constructor

Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für GeneratorFunction-Instanzen ist der anfängliche Wert der GeneratorFunction-Konstruktor.

GeneratorFunction.prototype.prototype

Alle Generatorfunktionen teilen dieselbe prototype-Eigenschaft, die Generator.prototype ist. Jede mit der function*-Syntax oder dem GeneratorFunction()-Konstruktor erstellte Generatorfunktion hat auch ihre eigene prototype-Eigenschaft, deren Prototype GeneratorFunction.prototype.prototype ist. Wenn die Generatorfunktion aufgerufen wird, wird ihre prototype-Eigenschaft zum Prototyp des zurückgegebenen Generatorobjekts.

GeneratorFunction.prototype[Symbol.toStringTag]

Der Anfangswert der [Symbol.toStringTag]-Eigenschaft ist die Zeichenkette "GeneratorFunction". Diese Eigenschaft wird in Object.prototype.toString() verwendet.

Diese Eigenschaften sind eigene Eigenschaften jeder GeneratorFunction-Instanz.

prototype

Wird verwendet, wenn die Funktion als Konstruktor mit dem new-Operator genutzt wird. Es wird zum Prototyp des neuen Objekts.

Instanz-Methoden

Erbt Instanz-Methoden von seinem Elternteil Function.

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-generatorfunction-objects

Browser-Kompatibilität

Siehe auch