Junior — Middle
Можете ли да обясните какво представлява затваряне в JavaScript и как работи?
sobes.tech AI
Отговор от AI
Затварянето в JavaScript е функция, която «запомня» средата, в която е създадена, дори ако тази среда вече не е активна. Проще казано, функция вътре в друга функция може да получи достъп до променливите на външната функция след като тя е приключила изпълнението си.
Това работи, защото при създаването на функция се запазва препратка към лексикалната среда, в която е била обявена.
Пример:
function външна() {
let брояч = 0;
return function вътрешна() {
брояч++;
console.log(bрояч);
};
}
const брояч = външна();
брояч(); // 1
брояч(); // 2
Тук вътрешна затваря променливата брояч от външна, запазвайки нейното състояние между извикванията.