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:

javascriptfunction 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.