Closure i JavaScript
Låt oss nu studera begreppet closure (closure). Egentligen är du redan bekant med detta begrepp, det återstår bara att lära sig den korrekta terminologin.
Så, ett closure är en funktion tillsammans med alla externa variabler som är tillgängliga för den. Eller med andra ord, ett closure är en funktion tillsammans med sin lexikala miljö.
I JavaScript menar man oftast, när man säger "ett funktions closure", inte själva funktionen, utan just dess externa variabler. Om en funktion hämtar en variabel från sin lexikala miljö, säger man "variabeln hämtas från closuret".
Låt oss komma ihåg koden som vi skapade i föregående lektion:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // skriver ut 1
I det här fallet kan man säga att funktionen
func får värdet på variabeln
num från closuret. Man kan också säga,
att funktionen func lagrar värdet på variabeln
num i closuret.