IIFE

Définition, exemples et bonnes pratiques

À retenir

  • S'exécute dès sa création.
  • Protège les variables internes du reste du programme (isolation).
  • Reconnaissable à sa structure entourée de parenthèses (...)().

Une IIFE est une fonction informatique, principalement utilisée en JavaScript, qui se déclenche automatiquement dès qu'elle est créée dans le code. Imaginez un colis "auto-déballant" : au moment précis où il est déposé chez vous, il s'ouvre et s'active tout seul sans que vous ayez besoin d'intervenir.

Étymologie

Acronyme de l'anglais Immediately Invoked Function Expression (Expression de fonction invoquée immédiatement). Le terme a été proposé en 2010 par le développeur Ben Alman pour remplacer l'appellation techniquement moins précise de "fonction anonyme auto-exécutée".

Exemples d'usage

  • (function() { console.log('Bonjour !'); })(); : Une fonction classique qui affiche un message instantanément.
  • (() => { const cache = {}; })(); : Une version moderne (fonction fléchée) utilisée pour créer un espace de stockage privé.

Cas d'usage

On utilise les IIFE pour isoler du code. Cela permet de créer des variables qui ne seront pas visibles par le reste du programme, évitant ainsi des conflits (quand deux scripts utilisent le même nom de variable par erreur). C'est très fréquent dans le développement de bibliothèques JS ou pour initialiser un script rapidement sans polluer l'espace global.

Bonnes pratiques

Aujourd'hui, avec l'arrivée des modules JavaScript (ES Modules) et des mots-clés let et const, le besoin d'utiliser des IIFE est moins fréquent qu'avant. Cependant, elles restent indispensables pour exécuter du code asynchrone (async/await) au premier niveau d'un script ou pour protéger du code dans des environnements anciens.

Synonymes

fonction auto-exécutée expression de fonction immédiate

Antonymes

fonction nommée fonction différée

Conseil

Pour bien comprendre, visualisez la structure en deux étapes : les premières parenthèses créent une "bulle" isolée, et la paire finale () est le bouton qui appuie sur 'Play'. C'est un excellent moyen de garder votre code propre et organisé.

Questions fréquentes

Est-ce qu'une IIFE peut avoir un nom ?

Oui, on peut nommer la fonction à l'intérieur, mais elle restera isolée et s'exécutera toujours immédiatement.

Pourquoi mettre des parenthèses autour ?

En JavaScript, cela indique à l'ordinateur que la fonction doit être traitée comme une expression (une valeur) et non comme une déclaration classique, ce qui permet de l'appeler de suite.