Retour au cours

Comprendre les Closures (Les fondamentaux)

JavaScript : Le cours complet pour débutant, de « Zéro à Héros »

50. Comprendre les Closures (Les fondamentaux)

Une Closure (Fermeture) est un concept crucial et souvent mal compris. Une closure est créée lorsqu'une fonction interne est définie à l'intérieur d'une fonction externe, et que la fonction interne se souvient et peut accéder aux variables de sa portée externe (lexicale), même après que la fonction externe a fini de s'exécuter.

Exemple : Créer un compteur

javascript function createCounter() { let count = 0; // C'est la variable enfermée

return function() { // La fonction interne (la closure)
    count++; // Accède au 'count' de la portée externe
    return count;
};

}

// Nous appelons la fonction externe une fois. Elle renvoie la fonction interne. const counter1 = createCounter(); const counter2 = createCounter();

console.log(counter1()); // Résultat : 1 console.log(counter1()); // Résultat : 2 (Elle se souvient de sa portée !)

console.log(counter2()); // Résultat : 1 (C'est une portée complètement séparée)

Pourquoi les closures sont-elles utiles ?

  1. Variables privées : Elles permettent aux fonctions d'avoir des données « privées » qui ne peuvent être consultées ou modifiées que via la fonction interne renvoyée.
  2. Persistance de l'état : Elles permettent aux données de persister entre les appels de fonction, ce qui est essentiel pour les modèles de programmation avancés et les hooks de React.