Das function* Schlüsselwort kann benutzt werden, um Generatorfunktionen in einem Ausdruck zu definieren.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
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 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 |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'function*' in dieser Spezifikation. |
Standard | Initiale Definition. |
| ECMAScript Latest Draft (ECMA-262) Die Definition von 'function*' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function* | Chrome Vollständige Unterstützung 49 | Edge Vollständige Unterstützung 12 | Firefox Vollständige Unterstützung 26 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 36 | Safari Vollständige Unterstützung 10 | WebView Android Vollständige Unterstützung 49 | Chrome Android Vollständige Unterstützung 49 | Firefox Android Vollständige Unterstützung 26 | Opera Android Vollständige Unterstützung 36 | Safari iOS Vollständige Unterstützung 10 | Samsung Internet Android Vollständige Unterstützung 5.0 | nodejs Vollständige Unterstützung Ja |
| Trailing comma in parameters | Chrome Vollständige Unterstützung 58 | Edge Keine Unterstützung Nein | Firefox Vollständige Unterstützung 52 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 45 | Safari ? | WebView Android Vollständige Unterstützung 58 | Chrome Android Vollständige Unterstützung 58 | Firefox Android Vollständige Unterstützung 52 | Opera Android Vollständige Unterstützung 43 | Safari iOS ? | Samsung Internet Android Vollständige Unterstützung 7.0 | nodejs Vollständige Unterstützung 8.0.0 |
Legende
- Vollständige Unterstützung
- Vollständige Unterstützung
- Keine Unterstützung
- Keine Unterstützung
- Kompatibilität unbekannt
- Kompatibilität unbekannt