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

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple Non Non3 — 60 Non Non Non
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Non Non Non4 — 60 Non Non Non

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

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