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.
Das function*
Schlüsselwort kann verwendet werden, um eine Generatorfunktion in einem Ausdruck zu definieren.
Sie können Generatorfunktionen auch mit der function*
Deklaration definieren.
Probieren Sie es aus
const foo = function* () { yield "a"; yield "b"; yield "c"; }; let str = ""; for (const val of foo()) { str = 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: Eine Ausdrucksanweisung kann nicht mit dem Schlüsselwort function
beginnen, um Mehrdeutigkeiten mit einer function*
Deklaration zu vermeiden. Das function
Schlüsselwort beginnt nur dann einen Ausdruck, wenn es in einem Kontext erscheint, der keine Anweisungen akzeptieren kann.
Parameter
name
OptionalDer Funktionsname. Kann weggelassen werden, in diesem Fall ist die Funktion anonym. Der Name ist nur lokal im Funktionskörper bekannt.
paramN
OptionalDer Name eines formalen Parameters für die Funktion. Informationen zur Syntax der Parameter finden Sie im Funktionen-Leitfaden.
statements
OptionalDie Anweisungen, die den Körper der Funktion bilden.
Beschreibung
Ein function*
Ausdruck ist dem function*
Deklaration sehr ähnlich und hat fast die gleiche Syntax. Der Hauptunterschied zwischen einem function*
Ausdruck und einer function*
Deklaration ist der Funktionsname, der bei function*
Ausdrücken weggelassen werden kann, um anonyme Funktionen zu erstellen. Ein function*
Ausdruck kann als IIFE (Sofort Ausgeführter Funktionsausdruck) verwendet werden, der ausgeführt wird, sobald er definiert ist. Dies ermöglicht es Ihnen, ein ad-hoc iterierbares Iterator-Objekt zu erstellen. Weitere Informationen finden Sie auch im Kapitel über Funktionen.
Beispiele
Verwendung des function* Ausdrucks
Das folgende Beispiel definiert eine unbenannte Generatorfunktion und weist sie x
zu. Die Funktion gibt das Quadrat ihres Arguments zurück:
const x = function* (y) { yield y * y; };
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-generator-function-definitions |