Sobes.tech
Middle

Hogyan működik egy closure JavaScriptben? Magyarázd el a példában szereplő index változót és a run függvényt a megoldásodban.

sobes.tech MI

Válasz az MI-től

A JavaScript-ben a lezárás (closure) egy olyan függvény, amely megőrzi a lexikális környezetét, még akkor is, ha a saját hatáskörén kívül hívják meg.

Vegyünk egy példát az index változóval és a run függvénnyel:

function createRunner() {
  let index = 0;
  function run() {
    console.log(index);
    index++;
  }
  return run;
}

const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2

Ebben az esetben a run függvény lezárja a createRunner külső függvény index változóját. Annak ellenére, hogy a createRunner már befejezte a futását, a run továbbra is hozzáfér az index-hez, és módosíthatja annak értékét. Ez lehetővé teszi az állapot megőrzését a run függvény hívásai között.

Így a lezárások lehetővé teszik privát változókkal rendelkező függvények létrehozását és az állapot megőrzését anélkül, hogy globális változókat használnánk.