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 იკეტება გარეგანი ფუნქციის createRunner-ის ცვლადზე index. მიუხედავად იმისა, რომ createRunner უკვე დასრულდა თავისი შესრულება, run კვლავ აქვს წვდომა index-ზე და შეუძლია მისი მნიშვნელობის შეცვლა. ეს საშუალებას აძლევს შეინახოს მდგომარეობა ფუნქციის run გამოძახების შორის.

ამ გზით, დახურვები საშუალებას აძლევენ შექმნან ფუნქციები პირად ცვლადებთან და შეინახონ მდგომარეობა, გლობალური ცვლადების გამოყენების გარეშე.