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.