⊗jsPmClCNG 265 of 505 menu

Variabla Globale e Numëruesit në JavaScript

Le ta largojmë variablën num jashtë funksioneve, duke e bërë atë në këtë mënyrë globale:

let num = 1; // variabël globale function test() { return function() { console.log(num); num++; }; }

Në këtë rast, të gjitha funksionet e kthyera do ta ndryshojnë këtë variabël globale dhe numëruesit do të punojnë tashmë në varësi të njëri-tjetrit:

let num = 1; function test() { return function() { console.log(num); num++; }; } let func1 = test(); // numëruesi i parë func1(); // do të shfaqë 1 func1(); // do të shfaqë 2 let func2 = test(); // numëruesi i dytë func2(); // do të shfaqë 3 func2(); // do të shfaqë 4

Pse pra kodi ynë i mëparshëm bënte numërues të pavarur? Më lejoni t'ju kujtoj këtë kod:

function test() { let num = 1; return function() { console.log(num); num++; }; };

Çështja është se variabla num është lokale brenda funksionit test. Prandaj çdo thirrje e test krijon variablin e saj lokal.

Prandaj, funksionet e kthyera do t'i referohen secila variablit të vet lokal të funksionit test. Pikërisht në këtë mënyrë arrihet pavarësia e funksionimit.

Nëse num bëhet variabël globale - ky do të jetë gjithashtu një mbyllje. Thjesht mjediset leksikore të funksioneve të kthyera i referohen së njëjtës variabël num - çdo ndryshim me këtë variabël do të jetë i dukshëm në të gjitha funksionet.

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

let counter = 0; function test() { return function() { console.log(counter); counter++; }; } let func = test; let func1 = func(); let func2 = func(); func1(); func2(); func1(); func2();

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

function test() { let counter = 0; return function() { return function() { console.log(counter); counter++; }; }; } let func = test()(); let func1 = func; let func2 = func; func1(); func2(); func1(); func2();

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

function test() { let counter = 0; return function() { return function() { console.log(counter); counter++; }; }; } let func = test(); let func1 = func(); let func2 = func(); func1(); func2(); func1(); func2();
Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo