Sobes.tech
Middle

რა არის დახურვა? შეგიძლია ახსნა?

sobes.tech AI

პასუხი AI-სგან

დაკეტვა — ეს ფუნქციაა ერთად მისი ლექსიკური გარემოსთან ერთად, სადაც ის შექმნა. ეს ნიშნავს, რომ ფუნქცია „მახსოვს“ გარე სქემის ცვლილებებს, მიუხედავად იმისა, რომ ეს გარე ფუნქცია უკვე დასრულდა.

JavaScript-ის მაგალითი:

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

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

აქ, შიდა ფუნქცია ინარჩუნებს წვდომას გარე ფუნქციის count ცვლილებაზე და ქმნის დახურვას (closure). ეს საშუალებას აძლევს ფუნქციის გამოძახების დროს მდგომარეობის შენახვას.