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