Sobes.tech
Junior

Kam reikalingas uždarymas JavaScript'e?

sobes.tech AI

Atsakymas iš AI

Uždarymas (closure) JavaScript yra funkcija, kuri «atsimena» aplinką, kurioje ji buvo sukurta, įskaitant prieigą prie išorinės apimties kintamųjų, net jei ši išorinė funkcija jau baigėsi.

Kam tai naudinga:

  • Būsenos išsaugojimas tarp funkcijų kvietimų.
  • Duomenų inkapsuliacija, privačių kintamųjų kūrimas.
  • Funkcijų įgyvendinimas su numatytaisiais parametrais arba daline taikymu.
  • React hook'ų uždarymai padeda išlaikyti prieigą prie būsenos ir props funkcijų viduje.

Pavyzdys:

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

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

Čia vidinė funkcija išlaiko prieigą prie išorinės funkcijos count kintamojo, net ir po to, kai makeCounter baigėsi.