Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Generator

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

View in EnglishAlways switch to English

Generator

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⁩.

DasGenerator Objekt wird von einerGenerator-Funktion zurückgegeben und entspricht sowohl demiterablen Protokoll als auch demIterator-Protokoll.

Generator ist eine Unterklasse der verstecktenIterator Klasse.

Konstruktor

Es gibt keine JavaScript-Entität, die demGenerator Konstruktor entspricht. Instanzen vonGenerator müssen vonGenerator-Funktionen zurückgegeben werden:

js
function* generator() {  yield 1;  yield 2;  yield 3;}const gen = generator(); // "Generator { }"console.log(gen.next().value); // 1console.log(gen.next().value); // 2console.log(gen.next().value); // 3

Es gibt nur ein verstecktes Objekt, das das Prototyp-Objekt ist, das von allen durch Generator-Funktionen erstellten Objekten geteilt wird. Dieses Objekt wird oft alsGenerator.prototype stilisiert, um es wie eine Klasse aussehen zu lassen, aber es sollte angemessenerweiseGeneratorFunction.prototype.prototype genannt werden, daGeneratorFunction eine tatsächliche JavaScript-Entität ist. Um die Prototyp-Kette vonGenerator Instanzen zu verstehen, sieheGeneratorFunction.prototype.prototype.

Instanz-Eigenschaften

Diese Eigenschaften sind aufGenerator.prototype definiert und werden von allenGenerator Instanzen geteilt.

Generator.prototype.constructor

Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. FürGenerator Instanzen ist der AnfangswertGeneratorFunction.prototype.

Hinweis:Generator Objekte speichern keinen Verweis auf die Generator-Funktion, die sie erstellt hat.

Generator.prototype[Symbol.toStringTag]

Der Anfangswert der[Symbol.toStringTag] Eigenschaft ist der String"Generator". Diese Eigenschaft wird inObject.prototype.toString() verwendet.

Instanz-Methoden

Erbt auch Instanz-Methoden von seinem übergeordnetenIterator.

Generator.prototype.next()

Gibt einen Wert zurück, der durch denyield Ausdruck ausgegeben wurde.

Generator.prototype.return()

Wirkt, als ob einereturn Anweisung in den Körper des Generators an der aktuellen angehaltenen Position eingefügt wird, was den Generator beendet und es dem Generator ermöglicht, Aufräumarbeiten auszuführen, wenn kombiniert mit einemtry...finally Block.

Generator.prototype.throw()

Wirkt, als ob einethrow Anweisung in den Körper des Generators an der aktuellen angehaltenen Position eingefügt wird, was dem Generator eine Fehlersituation mitteilt und es ihm ermöglicht, den Fehler zu handhaben oder aufzuräumen und sich selbst zu schließen.

Beispiele

Ein unendlicher Iterator

Mit einer Generator-Funktion werden Werte erst ausgewertet, wenn sie benötigt werden. Daher ermöglicht ein Generator uns, eine potenziell unendliche Datenstruktur zu definieren.

js
function* infinite() {  let index = 0;  while (true) {    yield index++;  }}const generator = infinite(); // "Generator { }"console.log(generator.next().value); // 0console.log(generator.next().value); // 1console.log(generator.next().value); // 2// …

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-generator-objects

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp