Sobes.tech
Middle

Jak funguje uzávěr v JavaScriptu? Vysvětlete na příkladu proměnné index a funkce run ve vašem řešení.

sobes.tech AI

Odpověď od AI

V JavaScriptu je uzávěr (closure) funkce, která si pamatuje své lexikální prostředí, i když je volána mimo svůj rozsah.

Podívejme se na příklad s proměnnou index a funkcí run:

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

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

Zde funkce run uzavírá proměnnou index z vnější funkce createRunner. I když createRunner již dokončila svůj běh, run má stále přístup k index a může jeho hodnotu měnit. To umožňuje uchovávat stav mezi voláními funkce run.

Tímto způsobem umožňují uzávěry vytvářet funkce s privátními proměnnými a uchovávat stav bez použití globálních proměnných.