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 innerhalb eines Ausdrucks zu definieren.
Sie können auch Generatorfunktionen mit der function*
Deklaration definieren.
Probieren Sie es aus
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 Schlüsselwort function
beginnt nur dann einen Ausdruck, wenn es in einem Kontext erscheint, der keine Anweisungen akzeptiert.
Parameter
name
Optional-
Der Funktionsname. Kann weggelassen werden, wobei die Funktion dann anonym ist. Der Name ist nur innerhalb des Funktionskörpers lokal.
paramN
Optional-
Der Name eines formalen Parameters für die Funktion. Für die Syntax der Parameter siehe das Funktionen-Referenz.
statements
Optional-
Die Anweisungen, die den Körper der Funktion bilden.
Beschreibung
Ein function*
Ausdruck ist einem 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 der Definition ausgeführt wird und es ermöglicht, ein ad-hoc iterables Iterator-Objekt zu erstellen. Siehe auch das Kapitel über Funktionen für weitere Informationen.
Beispiele
Verwendung des function* Ausdrucks
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
Specification |
---|
ECMAScript Language Specification # sec-generator-function-definitions |
Browser-Kompatibilität
BCD tables only load in the browser