Le mot-clé function* peut être utilisé pour définir une fonction génératrice à l'intérieur d'une expression.

Syntaxe

function* [nom]([param1[, param2[, ..., paramN]]]) {
   instructions
}

Paramètres

nom
Le nom de la fonction. Ce paramètre est optionnel, auquel cas la fonction sera une fonction anonyme. Le nom sera local par rapport au corps de la fonction.
paramN
Le nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
instructions
Les instructions qui forment le corps de la fonction.

Description

Une expression function* est très semblable à une instruction function*, elle possède également une syntaxe similaire. La différence principale entre une expression function* et une instruction function* est le nom de la fonction. En effet, dans les expressions, le nom peut être omis pour créer une fonction génératrice anonyme. Voir également le chapitre sur les fonctions pour plus d'informations.

Exemples

L'exemple qui suit illustre comment définir une génératrice anonyme et l'affecter à une variable x. Cette fonction génèrera le carré de son argument :

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

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'function*' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'function*' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simpleChrome Support complet OuiEdge Support complet OuiFirefox Support complet 26IE Aucun support NonOpera Support complet OuiSafari Support complet 10WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 26Opera Android Support complet OuiSafari iOS Support complet 10Samsung Internet Android Support complet Ouinodejs Support complet Oui
Trailing comma in parametersChrome Support complet 58Edge ? Firefox Support complet 52IE ? Opera Support complet 45Safari ? WebView Android Support complet 58Chrome Android Support complet 58Edge Mobile ? Firefox Android Support complet 52Opera Android Support complet 45Safari iOS ? Samsung Internet Android Support complet 7.0nodejs Support complet 8.0.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,