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 :
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!