Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է փակումը JavaScript-ում և այն ինչպես է աշխատում:

sobes.tech AI

Պատասխան AI-ից

JavaScript-ում փակումը այն ֆունկցիան է, որը «հիշում է» այն միջավայրը, որտեղ այն ստեղծվել է, նույնիսկ եթե այդ միջավայրը արդեն չի ակտիվ: Պարզ ասած, ֆունկցիա ներսի ֆունկցիայի մեջ կարող է մուտք ունենալ արտաքին ֆունկցիայի փոփոխականներին այն բանից հետո, երբ արտաքին ֆունկցիան ավարտի իր գործառույթը:

Այս ամենը աշխատում է այն պատճառով, որ ֆունկցիա ստեղծելիս պահվում է հղում այն լեքսիկ միջավայրին, որտեղ այն հայտարարվել է:

Օրինակ՝

function արտաքին() {
  let հաշվող = 0;
  return function ներսում() {
    հաշվող++;
    console.log(հաշվող);
  };
}

const հաշվող = արտաքին();
հաշվող(); // 1
հաշվող(); // 2

Այստեղ, ներսում փակվում է արտաքին-ից փոփոխականը և պահպանում է նրա վիճակը զանգահարումների միջև։