MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Message

Warning: expression closures are deprecated

Type d'erreur

Un avertissement, l'exécution du code JavaScript ne sera pas interrompue.

Quel est le problème ?

La syntaxe non-standard avec une expression de fermeture est dépréciée et ne devrait plus être utilisée. Cette syntaxe sera complètement retirée avec le bug bug 1083458 et les scripts qui l'utilisent déclencheront alors une exception SyntaxError.

Exemples

Syntaxe dépréciée

Les expression de fermeture permettent de ne pas utiliser les accolades ou les instructions return au sein d'une déclaration de fonction ou pour une définition de méthode dans un objet.

var x = function() 1;

var obj = { 
  count: function() 1
};

Syntaxe standard

Pour convertir cette syntaxe non-standard en une syntaxe standard, il suffit d'ajouter des accolades et l'instruction return.

var x = function() { return 1; }

var obj = {
  count: function() { return 1; }
};

Syntaxe standard avec les fonctions fléchées

On peut aussi utiliser les fonctions fléchées :

var x = () => 1;

Syntaxe standard avec la notation raccourcie pour les méthodes

On retrouve parfois les expressions de fermeture dans les accesseurs et les mutateurs, par exemple :

var obj = {
  get x() 1,
  set x(v) this.v = v
};

Grâce aux définitions de méthodes ES2015, on peut convertir le fragment de code précédent en :

var obj = { 
  get x() { return 1 }, 
  set x(v) { this.v = v } 
};

Voir aussi

Étiquettes et contributeurs liés au document

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