Maison > interface Web > js tutoriel > Les fonctions fléchées peuvent-elles créer leur propre objet Arguments dans ES6 ?

Les fonctions fléchées peuvent-elles créer leur propre objet Arguments dans ES6 ?

Susan Sarandon
Libérer: 2024-10-18 15:54:03
original
498 Les gens l'ont consulté

Can Arrow Functions Create Their Own Arguments Object in ES6?

Fonctions fléchées ES6 : Clarification sur l'utilisation des arguments

En ce qui concerne l'utilisation des arguments dans les fonctions fléchées ES6, une confusion est apparue en raison d'implémentations contradictoires entre principaux navigateurs et Babel. Cet article cherche à clarifier la position officielle sur cette question.

L'anomalie de comportement

Dans les fonctions fléchées, les arguments doivent hériter de leur valeur de la portée parent. Cependant, les navigateurs comme Chrome, Firefox et Node violent ce principe, permettant aux fonctions fléchées de créer leur propre objet arguments.

Documentation officielle

La spécification officielle ECMA-262 (ES6) indique explicitement que "les instructions spécifiées, les fonctions fléchées n'ont pas de propres arguments liés dans leur portée ; aucun objet arguments n'est créé lors de leur appel." Cela implique que les fonctions fléchées doivent s'appuyer uniquement sur la portée parent pour accéder aux arguments.

Implémentations du navigateur

Malgré la spécification officielle, Chrome, Firefox et Node ont choisi de ignorez cette règle, tandis que Babel y adhère. Cela conduit à l'écart suivant :

  • Navigateurs : les arguments sont disponibles dans les fonctions fléchées, dérivant de leur propre portée.
  • Babel : les arguments ne sont pas disponibles dans les fonctions fléchées, ce qui entraîne un " les arguments ne sont pas définis".

Utilisation correcte

Pour éviter toute confusion et garantir la compatibilité entre différents environnements, il est crucial de suivre la spécification officielle. Les fonctions fléchées ne doivent pas avoir leur propre objet arguments et toute référence aux arguments qu'elles contiennent doit faire référence à la portée parent.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal