Sobes.tech
Junior — Middle

Tudod magyarázni, mi az a closure JavaScriptben, és hogyan működik?

sobes.tech MI

Válasz az MI-től

A JavaScript-ben a lezárás egy olyan függvény, amely „emlékszik” arra a környezetre, ahol létrejött, még akkor is, ha ez a környezet már nem aktív. Egyszerűbben fogalmazva, egy másik függvényen belüli függvény hozzáférhet a külső függvény változóihoz, miután az befejezte a futását.

Ez azért működik, mert a függvény létrehozásakor egy hivatkozás kerül mentésre arra a lexikális környezetre, ahol deklarálták.

Példa:

function külső() {
  let számláló = 0;
  return function belső() {
    számláló++;
    console.log(számláló);
  };
}

const számláló = külső();
számláló(); // 1
számláló(); // 2

Itt a belső bezárja a külső változóját, megőrizve annak állapotát a hívások között.