| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Generator | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit September 2016 browserbergreifend verfgbar.
Das Generator-Objekt wird von einer Generator-Funktion zurckgegeben und entspricht sowohl dem iterablen Protokoll als auch dem Iterator-Protokoll.
Generator ist eine Unterklasse der Iterator-Klasse.
Es gibt keine JavaScript-Entitt, die dem Generator-Konstruktor entspricht. Instanzen von Generator mssen von Generator-Funktionen zurckgegeben werden:
function* generator() {
yield 1;
yield 2;
yield 3;
}
const gen = generator(); // "Generator { }"
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // 3
Es gibt nur ein verstecktes Objekt, das das Prototypobjekt ist, das von allen Objekten gemeinsam genutzt wird, die von Generator-Funktionen erstellt wurden. Dieses Objekt wird oft als Generator.prototype stilisiert, um es wie eine Klasse aussehen zu lassen, aber es sollte eher als GeneratorFunction.prototype.prototype bezeichnet werden, da GeneratorFunction eine tatschliche JavaScript-Entitt ist. Um die Prototypen-Kette von Generator-Instanzen zu verstehen, siehe GeneratorFunction.prototype.prototype.
Diese Eigenschaften sind auf Generator.prototype definiert und werden von allen Generator-Instanzen geteilt.
Generator.prototype.constructorDie Konstruktorfunktion, die das Instanzobjekt erstellt hat. Fr Generator-Instanzen ist der Anfangswert GeneratorFunction.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 in Object.prototype.toString() verwendet.
Erbt auch Instanzmethoden von seinem bergeordneten Iterator.
Generator.prototype.next()Gibt einen Wert zurck, der durch den yield-Ausdruck erzeugt wurde.
Generator.prototype.return()Wirkt, als ob eine return-Anweisung im Krper des Generators an der aktuellen angehaltenen Position eingefgt wird, wodurch der Generator beendet wird und der Generator alle Aufrumarbeiten durchfhren kann, wie sie mit einem try...finally-Block kombiniert sind.
Generator.prototype.throw()Wirkt, als ob eine throw-Anweisung im Krper des Generators an der aktuellen angehaltenen Position eingefgt wird, wodurch der Generator ber eine Fehlerbedingung informiert wird und es ermglicht wird, den Fehler zu behandeln oder Aufrumarbeiten durchzufhren und sich zu schlieen.
Mit einer Generator-Funktion werden Werte nicht ausgewertet, bis sie bentigt werden. Daher ermglicht ein Generator die Definition einer potenziell unendlichen Datenstruktur.
function* infinite() {
let index = 0;
while (true) {
yield index++;
}
}
const generator = infinite(); // "Generator { }"
console.log(generator.next().value); // 0
console.log(generator.next().value); // 1
console.log(generator.next().value); // 2
//
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-generator-objects |
GeneratorIteratorObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |