Sobes.tech
Middle

Jak działa zamknięcie w JavaScript? Wyjaśnij na przykładzie zmiennej index i funkcji run w twoim rozwiązaniu.

sobes.tech AI

Odpowiedź od AI

W JavaScript, zamknięcie (closure) to funkcja, która zapamiętuje swoje środowisko leksykalne, nawet jeśli jest wywoływana poza swoim zakresem.

Rozważmy przykład z zmienną index i funkcją run:

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

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

Tutaj funkcja run zamyka zmienną index z funkcji zewnętrznej createRunner. Mimo że createRunner już zakończyła swoje wykonanie, run nadal ma dostęp do index i może zmieniać jej wartość. To pozwala zachować stan między wywołaniami funkcji run.

W ten sposób zamknięcia pozwalają tworzyć funkcje z prywatnymi zmiennymi i zachowywać stan bez użycia zmiennych globalnych.