Objet Arguments dans les fonctions fléchées ES6 : documentation officielle
Les fonctions fléchées ont rapidement attiré l'attention des développeurs grâce à leur syntaxe concise. Cependant, un aspect qui a soulevé des questions est la disponibilité de l'objet arguments en leur sein.
Selon la documentation officielle du TC39, l'organisme directeur de la normalisation JavaScript, les fonctions fléchées ne créent pas leurs propres arguments. objet. Contrairement aux fonctions normales, les fonctions fléchées héritent de l'objet arguments de leur portée parent.
Ce comportement est évident dans l'exemple suivant où une fonction fléchée est invoquée avec trois arguments :
<code class="js">(() => console.log(arguments))(1, 2, 3);</code>
Dans les environnements comme Chrome, Firefox et Node.js, ce code enregistrera "1,2,3". Cependant, Babel et d'autres bundlers génèrent une erreur indiquant que les arguments ne sont pas définis.
Cette divergence se produit parce que certains environnements autorisent les fonctions fléchées à accéder à l'objet arguments de leur portée parent, tandis que d'autres implémentent l'interprétation stricte de l'ES6. spécification, qui interdit aux fonctions fléchées d'avoir leur propre objet arguments.
En résumé, la documentation officielle du TC39 (spécification ES6) indique clairement que les fonctions fléchées ne possèdent pas leur propre objet arguments. Le comportement observé dans certains environnements où les fonctions fléchées peuvent accéder aux arguments de la portée parent n'est pas standard et peut entraîner des résultats inattendus.
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!