--- title: 'Warning: expression closures are deprecated' slug: Web/JavaScript/Reference/Erreurs/Deprecated_expression_closures tags: - Avertissement - JavaScript - Warning translation_of: Web/JavaScript/Reference/Errors/Deprecated_expression_closures ---
Warning: expression closures are deprecated
Un avertissement, l'exécution du code JavaScript ne sera pas interrompue.
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 {{jsxref("SyntaxError")}}.
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 };
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; } };
On peut aussi utiliser les fonctions fléchées :
var x = () => 1;
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 } };