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