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.
По този начин, затварянията позволяват създаването на функции с частни променливи и запазване на състоянието без използването на глобални променливи.