Junior
La folosește pentru ce este nevoie de închiderea în JavaScript?
sobes.tech AI
Răspuns de la AI
Închiderea (closure) în JavaScript este o funcție care «ține minte» mediul în care a fost creată, inclusiv accesul la variabilele din domeniul extern, chiar dacă această funcție externă a fost deja finalizată.
Pentru ce este nevoie:
- Păstrarea stării între apelurile funcțiilor.
- Încapsularea datelor, crearea variabilelor private.
- Implementarea funcțiilor cu parametri predefiniți sau aplicare parțială.
- În hooks-urile React, închiderea ajută la păstrarea accesului la stare și la props în interiorul funcțiilor.
Exemplu:
function makeCounter() {
let count = 0;
return function() {
count += 1;
return count;
};
}
const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Aici, funcția internă păstrează accesul la variabila count din funcția externă, chiar și după ce makeCounter a fost finalizată.