Затворања во JavaScript
Ајде сега да го проучиме поимот затворање (closure). Всушност вие веќе сте запознаени со овој поим, останува само да ја дознаете точната терминологија.
Значи, затворање - тоа е функција заедно со сите надворешни променливи кои и се достапни. Или, со други зборови, затворање - тоа е функција заедно со својата лексичка средина.
Во JavaScript најчесто, кога се вели "затворање на функција", се подразбира не самата таа функција, туку токму нејзините надворешни променливи. Доколку некоја функција ја добива променливата од својата лексичка средина, тогаш се вели "променливата се зема од затворањето".
Да се потсетиме на кодот што го направивме во претходната лекција:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // ќе испише 1
Во овој случај може да се каже дека функцијата
func ја добива вредноста на променливата
num од затворањето. Исто така може да се каже,
дека функцијата func ја чува вредноста на променливата
num во затворањето.