Junior — Middle
Можете ли објаснити шта је затварање у Јаваскрипту и како ради?
sobes.tech АИ
Одговор од АИ
Затварање у JavaScript-у је функција која се «сећа» окружења у којем је створена, чак и ако то окружење више није активно. Једноставније речено, функција унутар друге функције може приступити променљивима спољашње функције након што она заврши са извршавањем.
Ово ради зато што приликом креирања функције, сачувана је референца на лексичко окружење у којем је она објављена.
Пример:
function спољашња() {
let бројач = 0;
return function унутрашња() {
бројач++;
console.log(бројач);
};
}
const бројач = спољашња();
бројач(); // 1
бројач(); // 2
Овде, унутрашња затвара променљиву бројач из спољашње, одржавајући њено стање између позива.