Sobes.tech
Middle

Kaip veikia uždarymas (closure) JavaScript? Paaiškinkite su pavyzdžiu apie kintamąjį index ir funkciją run jūsų sprendime.

sobes.tech AI

Atsakymas iš AI

JavaScript'e uždarymas (closure) yra funkcija, kuri prisimena savo leksinį aplinką, net jei ji kviečiama už savo matomumo srities ribų.

Pažiūrėkime pavyzdį su kintamuoju index ir funkcija run:

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

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

Čia, funkcija run uždaro išorinės funkcijos createRunner kintamąjį index. Nors createRunner jau baigė savo vykdymą, run vis dar turi prieigą prie index ir gali keisti jos reikšmę. Tai leidžia išlaikyti būseną tarp run funkcijos kvietimų.

Taip, uždarymai leidžia kurti funkcijas su privačiais kintamaisiais ir išlaikyti būseną be naudoti globalių kintamųjų.