Obsolète depuis Gecko 60 (Firefox 60 / Thunderbird 60 / SeaMonkey 2.57)
Cette fonctionnalité est obsolète. Bien qu'encore supportée par des navigateurs, son utilisation est découragée pour tout nouveau projet. Évitez de l'utiliser.

Opérateur non-standard, ne pas utiliser !
Cette syntaxe est une fonctionnalité dépréciée, spécifique à Firefox et qui a été retirée avec Firefox 60. En remplacement, il est préférable d'utiliser les fonctions fléchées.

Les expressions de fermetures sont une notation de raccourci pour écrire des fonctions simples.

Syntaxe

function [nom]([param1[, param2[, ..., paramN]]])
   expression

Paramètres

nom
Le nom de la fonction, ce paramètre est optionnel. S'il n'est pas utilisé, la fonction sera anonyme. Le nom de cette fonction est local uniquement pour le corps de la fonction.
paramN
Le nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
expression
L'expression qui correspond au corps de la fonction.

Description

Cet élément du langage n'est qu'une notation raccourcie pour l'écriture de fonctions simples. Il permet d'approcher un peu plus d'une notation correspondant au lambda calcul.

Pour les versions de JavaScript antérieures ou égales à 1.7 :

function(x) { return x * x; }

Avec JavaScript 1.8 :

function(x) x * x

Cette syntaxe permet de ne pas utiliser les accolades et l'instruction return (ici implicite). En dehors de la concision syntaxique, cet opérateur n'apporte pas d'autre avantage.

Exemples

Un raccourci pour ajouter des gestionnaires d'événements :

 document.addEventListener("click", function() false, true);

On peut utiliser cette notation avec les fonctions introduites pour les tableaux avec JavaScript 1.6 :

elems.some(function(elem) elem.type == "text");

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
Support simple
ObsolèteNon-standard
Chrome Aucun support NonEdge Aucun support NonFirefox Aucun support 3 — 60IE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonEdge Mobile Aucun support NonFirefox Android Aucun support 4 — 60Opera Android Aucun support NonSafari iOS Aucun support NonSamsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Aucun support  
Aucun support
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.

Notes de compatibilité

  • À partir de Gecko / SpiderMonkey 45 (Firefox 45 / Thunderbird 45 / SeaMonkey 2.42), des avertissements dans la console sont ajoutés aux fermetures d'expression (bug 995610).
  • La syntaxe des expressions de fermetures (closure expression) n'est pas autorisée dans les fonctions asynchrones. Cela déclenchera une exception SyntaxError à partir de Firefox 55.

Voir aussi

Étiquettes et contributeurs liés au document

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