Baseline Widely available
Das function*
Schlüsselwort kann verwendet werden, um eine Generatorfunktion innerhalb eines Ausdrucks zu definieren.
Sie können Generatorfunktionen auch mit der function*
Deklaration definieren.
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: Eine Ausdrucksanweisung kann nicht mit dem Schlüsselwort function
beginnen, um Verwechslungen mit einer function*
Deklaration zu vermeiden. Das function
Schlüsselwort beginnt einen Ausdruck nur dann, wenn es in einem Kontext erscheint, der keine Anweisungen akzeptieren kann.
name
Optional
Der Funktionsname. Kann weggelassen werden. In diesem Fall ist die Funktion anonym. Der Name ist nur lokal innerhalb des Funktionskörpers.
paramN
Optional
Der Name eines formalen Parameters für die Funktion. Siehe die Funktionsreferenz für die Syntax der Parameter.
statements
Optional
Die Anweisungen, die den Körper der Funktion bilden.
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 (Sofort Aufgerufenes Funktionsausdruck) verwendet werden, das ausgeführt wird, sobald es definiert ist. Dies ermöglicht es Ihnen, ein Ad-hoc iterierbares Iterator-Objekt zu erstellen. Weitere Informationen finden Sie auch im Kapitel über Funktionen.
Das folgende Beispiel definiert eine unbenannte Generatorfunktion und weist sie x
zu. Die Funktion liefert das Quadrat ihres Arguments:
const x = function* (y) {
yield y * y;
};
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4