Sobes.tech
Junior

Zašto je potrebno koristiti zatvaranje u JavaScriptu?

sobes.tech АИ

Одговор од АИ

Zatvaranje (closure) u JavaScript-u je funkcija koja «pamti» okruženje u kojem je kreirana, uključujući pristup promenljivima iz spoljnjeg opsega, čak i ako je ta spoljašnja funkcija već završila sa izvršavanjem.

Zašto je to potrebno:

  • Čuvanje stanja između poziva funkcija.
  • Inkapsulacija podataka, kreiranje privatnih promenljivih.
  • Implementacija funkcija sa podrazumevanim parametrima ili delimičnom primenom.
  • U React hook-ovima, zatvaranja pomažu da se sačuva pristup stanju i props-ima unutar funkcija.

Primer:

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

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

Ovde, unutrašnja funkcija održava pristup promenljivoj count iz spoljne funkcije, čak i nakon što je makeCounter završena.