Sobes.tech
Middle

Kako funkcioniše zatvaranje (closure) u JavaScript-u? Objasnite na primeru promenljive index i funkcije run u vašem rešenju.

sobes.tech АИ

Одговор од АИ

У JavaScript-у, затварање (closure) је функција која памти своје лексичко окружење, чак и ако се позове ван своје области видљивости.

Погледајмо пример са променљивом index и функцијом run:

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

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

Овде, функција run затвара променљиву index из спољашње функције createRunner. Иако је createRunner већ завршила са извршавањем, run и даље има приступ index и може га мењати. Ово омогућава да се стање одржава између позива функције run.

На овај начин, затварања омогућавају креирање функција са приватним променљивима и одржавање стања без коришћења глобалних променљивих.