Sobes.tech
Junior — Middle

Можете ли да обясните какво представлява затваряне в JavaScript и как работи?

sobes.tech AI

Отговор от AI

Затварянето в JavaScript е функция, която «запомня» средата, в която е създадена, дори ако тази среда вече не е активна. Проще казано, функция вътре в друга функция може да получи достъп до променливите на външната функция след като тя е приключила изпълнението си.

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

Пример:

function външна() {
  let брояч = 0;
  return function вътрешна() {
    брояч++;
    console.log(bрояч);
  };
}

const брояч = външна();
брояч(); // 1
брояч(); // 2

Тук вътрешна затваря променливата брояч от външна, запазвайки нейното състояние между извикванията.