Sluitings in JavaScript
Kom ons bestudeer nou die begrip sluiting (closure). Eintlik is jy reeds bekend met hierdie begrip, dit bly net om die korrekte terminologie te leer.
So, 'n sluiting is 'n funksie saam met al die eksterne veranderlikes wat vir dit toeganklik is. Of, met ander woorde, 'n sluiting is 'n funksie saam met sy leksikale omgewing.
In JavaScript, as hulle sê "sluiting van 'n funksie", bedoel hulle meestal nie die funksie self nie, maar presies sy eksterne veranderlikes. As 'n funksie 'n veranderlike uit sy leksikale omgewing kry, dan sê hulle "die veranderlike word geneem uit die sluiting".
Kom ons onthou die kode wat ons in die vorige les gemaak het:
function test() {
let num = 1;
return function() {
console.log(num);
}
}
let func = test();
func(); // sal 1 uitdruk
In hierdie geval kan ons sê dat die funksie
func kry die waarde van die veranderlike
num uit die sluiting. Ons kan ook sê
dat die funksie func stoor die waarde van die veranderlike
num in die sluiting.