Maison >interface Web >js tutoriel >Comment renvoyer correctement les objets des fonctions fléchées ES6 ?

Comment renvoyer correctement les objets des fonctions fléchées ES6 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-31 17:59:10517parcourir

How to Correctly Return Objects from ES6 Arrow Functions?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn