function* expression
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 innerhalb eines Ausdrucks zu definieren.
Sie können Generatorfunktionen auch mithilfe 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 Verwechslungen mit einer function*
-Deklaration zu vermeiden. Das Schlüsselwort function
leitet nur dann einen Ausdruck ein, wenn es in einem Kontext erscheint, der keine Anweisungen akzeptieren kann.
Parameter
name
Optional-
Der Funktionsname. Kann weggelassen werden, wodurch die Funktion anonym wird. Der Name ist nur lokal im Funktionskörper verfügbar.
paramN
Optional-
Der Name eines formalen Parameters für die Funktion. Die Syntax der Parameter finden Sie im Leitfaden zu Funktionen.
statements
Optional-
Die Anweisungen, die den Körper der Funktion ausmachen.
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 in function*
-Ausdrücken weggelassen werden kann, um anonyme Funktionen zu erstellen. Ein function*
-Ausdruck kann als IIFE (Immediately Invoked Function Expression) verwendet werden, die sofort nach ihrer Definition ausgeführt wird. Dies ermöglicht es Ihnen, ein Ad-hoc-iterierbares Iterator-Objekt zu erstellen. Weitere Informationen finden Sie auch im Kapitel über Funktionen.
Beispiele
Verwendung von function* Ausdruck
Das folgende Beispiel definiert eine unbenannte Generatorfunktion und weist diese x
zu. Die Funktion gibt das Quadrat ihres Arguments zurück:
const x = function* (y) {
yield y * y;
};
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-generator-function-definitions |
Browser-Kompatibilität
BCD tables only load in the browser