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.