Les fermetures sont une structure du code Javascript dans laquelle, au sein de fonctions imbriquées, la portée de la fonction extérieure est conservée dans la fonction intérieure.
Par exemple :
function outer(x,y){
var t = 1;
return function(z){
//x, y, t from the outer function are made available to inner function
return x + y + z + t;
}
}
var outer1 = outer(1,1); //creating a closure, or an instance of a function in sense
alert(outer1(1)); //Alerts 4
var outer2 = outer(2,2);
alert(outer2(2)); //Alerts 7
L'explication simple d'une fermeture est la suivante les définitions de fonctions et les expressions de fonctions qui se trouvent à l'intérieur des codes de fonction d'autres fonctions. Et que ces fonctions internes internes sont autorisées à accéder à toutes les variables locales, aux paramètres et aux fonctions internes déclarées dans leur(s) fonction(s) externe(s). Une fermeture est formée lorsque l'une de ces fonctions internes est rendue accessible en dehors de la fonction dans laquelle elle était contenue, de sorte qu'elle puisse être exécutée après le retour de la fonction externe. À ce moment-là, elle a encore aux variables locales, aux paramètres et aux déclarations de la fonction interne de sa fonction externe. Ces variables locales, paramètres et déclarations de fonction ont (initialement) les valeurs qu'ils avaient au moment du retour de la fonction externe et peuvent être utilisés par la fonction fonction interne.
Source :