⊗jsPmClCNG 265 of 505 menu

Globale tellervariabele in JavaScript

Laten we de variabele num buiten de functies plaatsen, waardoor deze globaal wordt:

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

In dit geval zullen alle geretourneerde functies deze globale variabele wijzigen en de tellers zullen afhankelijk van elkaar werken:

let num = 1; function test() { return function() { console.log(num); num++; }; } let func1 = test(); // eerste teller func1(); // geeft 1 weer func1(); // geeft 2 weer let func2 = test(); // tweede teller func2(); // geeft 3 weer func2(); // geeft 4 weer

Waarom maakte onze vorige code dan onafhankelijke tellers? Laat me die code herinneren:

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

Het feit is dat de variabele num - lokaal is binnen de functie test. Daarom creëert elke aanroep van test zijn eigen lokale variabele.

Daarom zullen de geretourneerde functies elk verwijzen naar hun eigen lokale variabele van de functie test. Dit is precies hoe onafhankelijkheid wordt bereikt.

Als je num een globale variabele maakt - zal dit ook een closure zijn. Alleen verwijzen de lexicale omgevingen van de geretourneerde functies naar dezelfde variabele num - eventuele wijzigingen aan deze variabele zullen zichtbaar zijn in alle functies.

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

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

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

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

Bepaal, zonder de code uit te voeren, wat er in de console wordt weergegeven:

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();
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren