Maison >interface Web >js tutoriel >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 ?

DDD
DDDoriginal
2024-10-18 16:00:05460parcourir

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 plateformes (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 transmis à la fonction englobante.

Babel, en revanche, suit la spécification officielle en lançant une "ReferenceError" lors de l'accès aux arguments dans 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.

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