Closure
Une fermeture (closure) est l'association d'une fonction avec son environnement de définition, permettant à une fonction interne d'accéder aux variables de la fonction externe même après le retour de celle-ci.
Objectif
Permet la confidentialité des données, la rétention d'état et les fabriques de fonctions — une technique centrale de la programmation fonctionnelle.
Mécanisme
Une fonction capture son environnement lexical (liaisons de variables) à sa création. Même après le retour de la fonction externe, la fermeture conserve une référence à l'environnement. Usages : variables privées, état des callbacks, curryfication et pattern module. Attention à la capture accidentelle de variables de boucle.
Cas d’usage
- Programmation fonctionnelle
- Confidentialité des données
- État des callbacks