Closure
JavaScript 🟡 MidDefinition
Fonction qui capture et retient les variables de son scope parent meme apres que celui-ci a termine son execution. C'est le mecanisme fondamental derriere les callbacks, modules et data privacy en JS.
Analogie
Un sac a dos que tu emportes en quittant la maison : meme loin de chez toi, tu as toujours acces a ce que tu y as mis.
Exemple de code
function counter() {
let count = 0;
return {
increment: () => ++count,
get: () => count
};
}
const c = counter();
c.increment(); // 1
Cas d'usage
Encapsuler un etat prive dans un module ou creer des fonctions factory avec configuration injectee.
Anti-pattern
Creer des closures dans une boucle var sans IIFE : toutes les callbacks partagent la meme variable.