Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
function* Ausdruck
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.
Dasfunction* Schlüsselwort kann verwendet werden, um eine Generatorfunktion innerhalb eines Ausdrucks zu definieren.
Sie können Generatorfunktionen auch mit derfunction* Deklaration definieren.
In diesem Artikel
Probieren Sie es aus
const foo = function* () { yield "a"; yield "b"; yield "c";};let str = "";for (const val of foo()) { str += val;}console.log(str);// Expected output: "abc"Syntax
function* (param0) { statements}function* (param0, param1) { statements}function* (param0, param1, /* …, */ paramN) { statements}function* name(param0) { statements}function* name(param0, param1) { statements}function* name(param0, param1, /* …, */ paramN) { statements}Hinweis:EineAusdrucksanweisung kann nicht mit dem Schlüsselwortfunction beginnen, um Verwechslungen mit einerfunction* Deklaration zu vermeiden. Dasfunction Schlüsselwort beginnt einen Ausdruck nur dann, wenn es in einem Kontext erscheint, der keine Anweisungen akzeptieren kann.
Parameter
nameOptionalDer Funktionsname. Kann weggelassen werden. In diesem Fall ist die Funktionanonym. Der Name ist nur lokal innerhalb des Funktionskörpers.
paramNOptionalDer Name eines formalen Parameters für die Funktion. Siehe dieFunktionsreferenz für die Syntax der Parameter.
statementsOptionalDie Anweisungen, die den Körper der Funktion bilden.
Beschreibung
Einfunction* Ausdruck ist demfunction* Deklaration sehr ähnlich und hat fast die gleiche Syntax. Der Hauptunterschied zwischen einemfunction* Ausdruck und einerfunction* Deklaration ist derFunktionsname, der infunction* Ausdrücken weggelassen werden kann, umanonyme Funktionen zu erstellen. Einfunction* Ausdruck kann alsIIFE (Sofort Aufgerufenes Funktionsausdruck) verwendet werden, das ausgeführt wird, sobald es definiert ist. Dies ermöglicht es Ihnen, ein Ad-hociterierbares Iterator-Objekt zu erstellen. Weitere Informationen finden Sie auch im Kapitel überFunktionen.
Beispiele
>Verwendung des function* Ausdrucks
Das folgende Beispiel definiert eine unbenannte Generatorfunktion und weist siex zu. Die Funktion liefert das Quadrat ihres Arguments:
const x = function* (y) { yield y * y;};Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-generator-function-definitions> |