Maison > interface Web > js tutoriel > Les fonctions fléchées dans ES6 ont-elles accès aux objets Arguments ?

Les fonctions fléchées dans ES6 ont-elles accès aux objets Arguments ?

DDD
Libérer: 2024-10-18 15:55:03
original
708 Les gens l'ont consulté

Do Arrow Functions in ES6 Have Access to Arguments Objects?

Documentation officielle sur les arguments dans les fonctions fléchées d'ES6

Dans le domaine d'ES6, les fonctions fléchées ont déclenché un débat concernant leur traitement des arguments mot-clé. Contrairement aux premières recommandations du TC39, les moteurs de navigateur tels que Chrome, Firefox et Node.js semblent autoriser les fonctions fléchées à accéder à l'objet arguments.

Cependant, Babel, un transpilateur JavaScript populaire, suit la position initiale du TC39 et interdit ce comportement. Cette incohérence a poussé les développeurs à rechercher une documentation officielle pour résoudre l'ambiguïté.

Selon la [Spécification du langage ECMAScript 2015](https://www.ecma-international.org/ecma-262/6.0/#sec- arrow-function-definitions), les fonctions fléchées n'ont pas leurs propres arguments de liaison. Lors de l'appel d'une fonction flèche, aucun objet arguments n'est créé.

Plus précisément, la spécification indique :

  • "Les fonctions flèches n'ont pas de propre liaison d'arguments dans leur portée ; aucun objet arguments est créé lors de leur appel." (14.8.1)
  • "Les expressions de fonctions fléchées sont évaluées comme des fonctions dont le [[ThisMode]] est défini sur lexical." (14.2.16.1)
  • "Lorsqu'une telle fonction est appelée, l'instanciation de la déclaration ne crée pas d'objet arguments." (14.2.16.1)
  • "Il y a même une note spécifique (18 a) indiquant que 'Les fonctions fléchées n'ont jamais d'objets arguments.'" (14.2.16.1)

Basé sur ces documents officiels, il est clair que le comportement de Babel est correct et que les fonctions fléchées ne doivent pas avoir accès à l'objet arguments dans leur portée.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal