Sobes.tech
Junior

Na co je potřeba používat uzávěr v JavaScriptu?

sobes.tech AI

Odpověď od AI

Uzávěr (closure) v JavaScriptu je funkce, která si «pamatuje» prostředí, ve kterém byla vytvořena, včetně přístupu k proměnným z vnějšího rozsahu, i když tato vnější funkce již dokončila své provádění.

K čemu je to potřeba:

  • Ukládání stavu mezi voláními funkcí.
  • Zapouzdření dat, vytváření soukromých proměnných.
  • Implementace funkcí s výchozími parametry nebo částečnou aplikací.
  • V React hookách pomáhají uzávěry zachovat přístup ke stavu a props uvnitř funkcí.

Příklad:

function makeCounter() {
  let count = 0;
  return function() {
    count += 1;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

Zde vnitřní funkce zachovává přístup k proměnné count z vnější funkce, i po dokončení makeCounter.