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 փոփոխականի դեպի արտաքին ֆունկցիա makeCounter, ստեղծելով փակուղի (closure): Սա թույլ է տալիս պահել վիճակը ֆունկցիայի կանչերի միջև։