Maison  >  Article  >  interface Web  >  Quand l'objet Arguments est-il disponible dans les fonctions fléchées ES6 ?

Quand l'objet Arguments est-il disponible dans les fonctions fléchées ES6 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-18 15:58:02606parcourir

When is the Arguments Object Available in ES6 Arrow Functions?

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!

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