IIFE
Une IIFE (Immediately Invoked Function Expression, ou « expression de fonction immédiatement invoquée ») est un idiome dans lequel une fonction JavaScript s'exécute dès qu'elle est définie. On parle aussi de fonction anonyme auto-exécutée. Le nom IIFE a été popularisé par Ben Alman dans son blog (angl.).
// IIFE classique
(function () {
// instructions…
})();
// variante avec fonction fléchée
(() => {
// instructions…
})();
// IIFE asynchrone
(async () => {
// instructions…
})();
Elle comporte deux parties principales :
- Une expression de fonction. Celle-ci doit généralement être entourée de parenthèses pour être analysée correctement.
- L'appel immédiat de l'expression de fonction. Des arguments peuvent être fournis, mais les IIFE sans argument sont plus courantes.
Les IIFE sont un motif courant pour exécuter autant d'instructions que souhaité dans leur propre portée (et éventuellement retourner une valeur), à un endroit qui exige une seule expression. Elles sont similaires, mais bien plus puissantes que l'opérateur virgule, qui ne permet d'exécuter que plusieurs expressions et ne fournit donc aucun moyen d'utiliser des variables locales ou des instructions de contrôle de flux.
Les cas d'usage des IIFE incluent :
- Éviter de polluer l'espace de noms global en créant une nouvelle scope.
- Créer un nouveau contexte asynchrone pour utiliser
await
dans un contexte non asynchrone. - Calculer des valeurs avec une logique complexe, par exemple en utilisant plusieurs instructions comme une seule expression.
Pour des exemples de code, voir les pages de référence sur l'expression function
et l'expression async function
.
Voir aussi
- IIFE (angl.) (Wikipédia)
- L'Opérateur virgule
- Termes du glossaire associés :