Sobes.tech
Middle

Как работи затваряне (closure) в JavaScript? Обяснете с пример за променливата index и функцията run във вашето решение.

sobes.tech AI

Отговор от AI

В 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.

По този начин, затварянията позволяват създаването на функции с частни променливи и запазване на състоянието без използването на глобални променливи.