Sobes.tech
Middle

Чӣ гуна кор мекунад closure дар JavaScript? Бо мисоли тағйирёбандаи 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 тағйирёбандаи index-ро аз функсияи берунаи createRunner пӯшида мегирад. Ҳатто агар createRunner аллакай анҷом ёфта бошад, run ҳоло ҳам ба index дастрасӣ дорад ва метавонад арзишашро тағйир диҳад. Ин имкон медиҳад, ки ҳолат байни даъватҳои функсия нигоҳ дошта шавад.

Бо ҳамин, пӯшидаҳо имкон медиҳанд, ки функсияҳо бо тағйирёбандаҳои хусусӣ сохта шаванд ва ҳолат нигоҳ дошта шавад, бе истифодаи тағйирёбандаҳои глобалӣ.