⊗jsPmClCNG 265 of 505 menu

Variabila globală a contorului în JavaScript

Scoatem variabila num în afara funcțiilor, făcând-o astfel globală:

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

În acest caz, toate funcțiile returnate vor modifica această variabilă globală și contoarele vor funcționa deja dependente unele de altele:

let num = 1; function test() { return function() { console.log(num); num++; }; } let func1 = test(); // primul contor func1(); // va afișa 1 func1(); // va afișa 2 let func2 = test(); // al doilea contor func2(); // va afișa 3 func2(); // va afișa 4

De ce făcea codul nostru anterior contoare independente? Îmi amintesc acest cod:

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

Faptul este că variabila num este locală în interiorul funcției test. De aceea fiecare apel al funcției test generează propria sa variabilă locală.

Prin urmare, funcțiile returnate se vor referi fiecare la propria variabilă locală a funcției test. Exact asta asigură independența funcționării.

Dacă facem num o variabilă globală - aceasta va fi tot o închidere. Doar că mediile lexicale ale funcțiilor returnate se referă la aceeași variabilă num - orice modificări cu această variabilă vor fi vizibile în toate funcțiile.

Determinați, fără a rula codul, ce se va afișa în consolă:

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

Determinați, fără a rula codul, ce se va afișa în consolă:

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();

Determinați, fără a rula codul, ce se va afișa în consolă:

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();
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge