Maison > interface Web > js tutoriel > Pourquoi Babel utilise-t-il `(0, fn)(...)` lors de l'appel de fonctions importées ?

Pourquoi Babel utilise-t-il `(0, fn)(...)` lors de l'appel de fonctions importées ?

Susan Sarandon
Libérer: 2024-12-14 22:24:19
original
195 Les gens l'ont consulté

Why Does Babel Use `(0, fn)(...)` When Calling Imported Functions?

Pourquoi (0, appel de fonction Babel) dans la sortie compilée de Babel ?

Lors de l'importation de fonctions à partir de modules externes et de leur utilisation dans votre code, vous remarquerez peut-être un comportement intéressant dans la sortie transformée de Babel. Les fonctions sont enveloppées sous la forme (0, fn)(...). Ceci diffère de l'appel de fonction d'origine sans l'opérateur virgule lorsqu'il est compilé en mode libre.

Cette transformation a un objectif précis : elle garantit que le contexte this de la fonction est défini soit sur l'objet global en mode non strict ou indéfini en mode strict. Lors de l'appel direct de _b.a(), this serait par défaut l'objet module _b .

En utilisant (0, _b.a)(), Babel force la fonction à appeler avec this défini sur la valeur appropriée. L'opérateur virgule (,) supprime essentiellement la valeur de retour de l'expression précédente (dans ce cas, 0) et évalue le côté droit, qui est l'appel de fonction dans ce cas.

Essentiellement, l'opérateur transformé code est équivalent à :

0; // Ignore result
var tmp = _b.a;
tmp();
Copier après la connexion

Cette technique garantit que le contexte ce de la fonction est cohérent avec le comportement attendu.

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.cn
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