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:

javascriptfunction 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.