Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Expression closures

Opérateur non-standard, ne pas utiliser !
Cette syntaxe est une fonctionnalité dépréciée, spécifique à SpiderMonkey et qui sera prochainement supprimée. 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é Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple Pas de support (Oui) Pas de support Pas de support Pas de support
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support Pas de support (Oui) Pas de support Pas de support Pas de support

Notes spécifiques à Gecko

À 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).

Voir aussi

Étiquettes et contributeurs liés au document

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