"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quand les fonctions fléchées ou la portée parent définissent-elles les arguments d'une fonction ?

Quand les fonctions fléchées ou la portée parent définissent-elles les arguments d'une fonction ?

Publié le 2024-11-07
Parcourir:410

When Do Arrow Functions or the Parent Scope Define the Arguments of a Function?

Arguments dans les fonctions fléchées ES6 : Clarification officielle

Dans les fonctions fléchées ES6, le comportement du mot-clé arguments a été un sujet de débat. Certains navigateurs et plates-formes (tels que Chrome, Firefox et Node) s'écartent des recommandations initiales du TC39, soulevant des questions sur l'interprétation correcte de la spécification.

Selon la spécification officielle ES6, les fonctions fléchées n'ont pas leur propres arguments contraignants dans leur portée. Lorsqu'elles sont invoquées, les fonctions fléchées ne créent pas d'objet arguments dans le cadre du processus d'instanciation de la déclaration.

Cela contredit le comportement observé dans les navigateurs tels que Chrome, Firefox et Node, qui créent un objet arguments dans les fonctions fléchées. En conséquence, ces navigateurs donnent accès de manière incorrecte aux arguments passés à la fonction englobante.

Babel, d'autre part, suit la spécification officielle en lançant une "ReferenceError" lorsque les arguments sont accédés à l'intérieur d'une fonction fléchée. Cela correspond au comportement prévu des fonctions fléchées en tant que fonctions qui adoptent leur portée parent pour l'accès aux arguments.

Par conséquent, il faut bien comprendre que les fonctions fléchées n'ont pas de liaison d'arguments dédiée. Les développeurs doivent utiliser l'objet arguments fourni par la fonction englobante pour accéder aux arguments transmis lorsqu'ils travaillent avec des fonctions fléchées.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729238355. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3