⊗jsPmClCNG 265 of 505 menu

Globális számlálóváltozó JavaScriptben

Vegyük ki a num változót a függvényeken kívülre, ezzel globálissá téve:

let num = 1; // globális változó function test() { return function() { console.log(num); num++; }; }

Ebben az esetben minden visszaadott függvény módosítani fogja ezt a globális változót, és a számlálók már egymástól függően fognak működni:

let num = 1; function test() { return function() { console.log(num); num++; }; } let func1 = test(); // első számláló func1(); // kiírja: 1 func1(); // kiírja: 2 let func2 = test(); // második számláló func2(); // kiírja: 3 func2(); // kiírja: 4

Miért csinálták független számlálókat a korábbi kódjaink? Emlékeztetőül a kód:

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

Az a helyzet, hogy a num változó lokális a test függvényen belül. Ezért a test minden meghívása a saját lokális változóját hozza létre.

Ezért a visszaadott függvények mind a test függvény saját lokális változójára fognak hivatkozni. Pontosan így érhető el a független működés.

Ha a num változót globálissá tesszük, az továbbra is zárás lesz. Csak a visszaadott függvények lexikai környezetei ugyanarra a num változóra fognak hivatkozni - a változóval kapcsolatos bármely módosítás látható lesz minden függvényben.

Határozd meg, kód futtatása nélkül, mi jelenik meg a konzolon:

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

Határozd meg, kód futtatása nélkül, mi jelenik meg a konzolon:

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

Határozd meg, kód futtatása nélkül, mi jelenik meg a konzolon:

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();
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás