Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Expression function*
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.
Le mot-cléfunction* peut être utilisé pour définir une fonction génératrice à l'intérieur d'une expression.
Dans cet article
Exemple interactif
const foo = function* () { yield "a"; yield "b"; yield "c";};let str = "";for (const val of foo()) { str = str + val;}console.log(str);// Expected output: "abc"Syntaxe
function* [nom]([param1[, param2[, …, paramN]]]) { instructions}Paramètres
nomLe nom de la fonction. Ce paramètre est optionnel, auquel cas la fonction sera une fonctionanonyme. Le nom sera local par rapport au corps de la fonction.
paramNLe nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
instructionsLes instructions qui forment le corps de la fonction.
Description
Une expressionfunction* est très semblable à une instructionfunction*, elle possède également une syntaxe similaire. La différence principale entre une expressionfunction* et une instructionfunction* est le nom de la fonction. En effet, dans les expressions, le nom peut être omis pour créer une fonction génératriceanonyme. Voir également le chapitre sur lesfonctions pour plus d'informations.
Exemples
L'exemple qui suit illustre comment définir une génératrice anonyme et l'affecter à une variablex. Cette fonction génèrera le carré de son argument :
var x = function* (y) { yield y * y;};Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-generator-function-definitions> |
Compatibilité des navigateurs
Voir aussi
- L'instruction
function* - L'objet
GeneratorFunction - Le protocole itérateur
yieldyield*- L'objet
Function - L'instruction
function - L'expression
function - Fonctions et portée des fonctions