Closure

JavaScript 🟡 Mid

Definition

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.
#core#interview#fondamental