⊗jsPmClCNG 265 of 505 menu

Globale veranderlike teller in JavaScript

Laat ons die veranderlike num buite die funksies plaas, en sodoende 'n globale veranderlike daarvan maak:

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

In hierdie geval sal alle teruggekeerde funksies die globale veranderlike verander en die tellers sal alreeds van mekaar afhanklik werk:

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

Hoekom het ons vorige kode dan onafhanklike tellers gemaak? Laat ek hierdie kode onthou:

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

Die saak is dat die veranderlike num - plaaslik binne die funksie test is. Daarom skep elke oproep van test sy eie plaaslike veranderlike.

Dus sal die teruggekeerde funksies elk verwys na hul eie plaaslike veranderlike van die funksie test. Dit is presies hoe onafhanklikheid bereik word.

As jy num 'n globale veranderlike maak - sal dit ook 'n sluiting wees. Net die leksikale omgewings van die teruggekeerde funksies verwys na dieselfde veranderlike num - enige veranderinge aan hierdie veranderlike sal sigbaar wees in alle funksies.

Bepaal, sonder om die kode uit te voer, wat in die konsole uitgevoer sal word:

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, sonder om die kode uit te voer, wat in die konsole uitgevoer sal word:

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, sonder om die kode uit te voer, wat in die konsole uitgevoer sal word:

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();
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp