Renvoi d'objets à partir de fonctions fléchées dans ECMAScript 6
Dans ECMAScript 6 (ES6), les fonctions fléchées fournissent une syntaxe concise pour définir des fonctions. Cependant, lors du renvoi d'un objet à partir d'une fonction fléchée, une confusion courante survient en raison d'une ambiguïté grammaticale.
L'extrait de code suivant entraînera un comportement inattendu :
p => {foo: "bar"}
Cette expression renverra undefined au lieu de l'objet attendu. Pour résoudre ce problème, un ensemble supplémentaire d'accolades et un mot-clé return sont requis :
p => { return {foo: "bar"}; }
Cette approche garantit que les accolades sont interprétées comme un objet littéral, et non comme le corps de la fonction.
Cependant, cette syntaxe supplémentaire peut être lourde. Heureusement, une solution plus simple existe. En enveloppant le littéral de l'objet entre parenthèses, l'ambiguïté est résolue :
p => ({ foo: 'bar' })
Avec cette modification, les accolades désignent clairement le littéral de l'objet et le mot-clé return n'est pas nécessaire. Cette technique peut être appliquée à toute autre expression renvoyée par une fonction flèche, éliminant ainsi le besoin d'une surcharge de syntaxe supplémentaire :
p => 10 p => 'foo' p => true p => [1,2,3] p => null p => /^foo$/
En comprenant l'ambiguïté grammaticale et en utilisant la technique d'habillage des parenthèses, les développeurs peuvent renvoyer efficacement des objets. à partir des fonctions fléchées dans ECMAScript 6.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!