--- title: function* Ausdruck slug: Web/JavaScript/Reference/Operators/function* tags: - ECMAScript 2015 - Function - Iterator - JavaScript - Operator - Primary Expression translation_of: Web/JavaScript/Reference/Operators/function* ---
{{jsSidebar("Operators")}}

Das function* Schlüsselwort kann benutzt werden, um Generatorfunktionen in einem Ausdruck zu definieren.

{{EmbedInteractiveExample("pages/js/expressions-functionasteriskexpression.html")}}

Syntax

function* [name]([param1[, param2[, ..., paramN]]]) {
   statements
}

Parameter

name
Der Funktionsname. Kann weggelassen werden, wenn es ein anonymen Funktion ist. Der Name ist nur im Funktionskörper referenzierbar.
paramN
Der Name eines Argumentes, welches der Funktion übergeben wird. Eine Funktion kann bis zu 255 Argumente haben.
statements
Die Statements, die den Rumpf der Funktion darstellen.

Beschreibung

Ein function* Ausdruck sehr ähnlich zu {{jsxref('Statements/function*', 'function* Statements')}} und hat die selbe Syntax. Der Hauptunterschied zwischen einem function* Ausdruck und function* Statement ist der Funktionsname, welcher in einem function* Ausdruck weggelassen werden kann, um eine anonyme Funktion zu erstellen. Mehr Informationen sind im Kapitel Funktionen enthalten.

Beispiele

Das folgende Beispiel definiert eine namenlose Generatorfunktion und weist diese x zu. Die Funktion liefert das Quadrat ihres Argumentes:

var x = function*(y) {
   yield y * y;
};

Spezifikationen

Spezifikation Status Komment
{{SpecName('ES2015', '#', 'function*')}} {{Spec2('ES2015')}} Initiale Definition.
{{SpecName('ESDraft', '#', 'function*')}} {{Spec2('ESDraft')}}  

Browserkompatibilität

{{Compat("javascript.operators.function_star")}}

Siehe auch