Mbylljet në JavaScript
Tani le të studiojmë konceptin e mbylljes (closure). Në fakt ju jeni njohur tashmë me këtë koncept, mbetet vetëm të mësohet terminologjia e saktë.
Pra, një mbyllje është një funksion së bashku me të gjitha variablat e jashtëm që i janë të disponueshëm. Ose, me fjalë të tjera, një mbyllje është një funksion së bashku me mjedisin e tij leksikor.
Në JavaScript më shpesh, kur thuhet "mbyllja e një funksioni", nënkuptohet jo vetë funksioni, por pikërisht variablat e tij të jashtëm. Nëse ndonjë funksion merr një variabël nga mjedisi i tij leksikor, atëherë thuhet "variabla merret nga mbyllja".
Le të kujtojmë kodin që kemi bërë në mësimin e mëparshëm:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // nxjerr 1
Në këtë rast mund të thuhet se funksioni
func merr vlerën e variablës
num nga mbyllja. Gjithashtu mund të thuhet,
se funksioni func ruan vlerën e variablës
num në mbyllje.