Sobes.tech
Middle

JavaScriptте жабыктык (closure) кантип иштейт? Чечимиңиздеги index өзгөрмөсү жана run функциясы менен мисал келтирип түшүндүрүңүз.

sobes.tech AI

AIден жооп

JavaScriptте, жабдуулук (closure) — бул, өзүнүн лексикалык чөйрөсүн эстеген жана анын чектөөсүнөн тышкары чакырылганда да, ага жетүү мүмкүнчүлүгү бар функция.

Мисал катары index өзгөрмөсү жана run функциясын карайлы:

function createRunner() {
  let index = 0;
  function run() {
    console.log(index);
    index++;
  }
  return run;
}

const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2

Бул жерде, run функциясы сырттагы createRunner функциясынан index өзгөрмөсүн жабат. Эгерде createRunner иштөөүн аяктагандан кийин да, run indexке жетип, анын маанисин өзгөртүп тура алат. Бул, run функциясынын чакырууларынын ортосунда, абалды сактап калууга мүмкүндүк берет.

Ошентип, жабдуулук (closure) — бул, жеке өзгөрмөлөрү бар функцияларды түзүүгө жана абалды сактоого мүмкүндүк берүүчү механизм, глобалдык өзгөрмөлөрдү колдонбостон.