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

js
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:

js
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

Siehe auch