⊗jsPmClCNG 265 of 505 menu

Глобална променлива за бројач во JavaScript

Да ја изнесеме променливата num надвор од функциите, со тоа што ќе ја направиме глобална:

let num = 1; // глобална променлива function test() { return function() { console.log(num); num++; }; }

Во овој случај, сите вратени функции ќе ја менуваат истата глобална променлива и бројачите ќе работат зависно еден од друг:

let num = 1; function test() { return function() { console.log(num); num++; }; } let func1 = test(); // прв бројач func1(); // ќе испише 1 func1(); // ќе испише 2 let func2 = test(); // втор бројач func2(); // ќе испише 3 func2(); // ќе испише 4

Зошто тогаш нашиот претходен код создаваше независни бројачи? Да го потсетам тој код:

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

Работата е во тоа што променливата num е локална внатре во функцијата test. Затоа секој повик на test создава своја локална променлива.

Затоа, вратените функции ќе се однесуваат секоја на својата локална променлива на функцијата test. Токму на овој начин се постигнува независност во работата.

Доколку num се направи глобална променлива - тоа исто така ќе биде затворање. Едноставно, лексичките околини на вратените функции се однесуваат на истата променлива num - сите промени со оваа променлива ќе бидат видливи во сите функции.

Определи, без да ја стартуваш кодот, што ќе се испише во конзолата:

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

Определи, без да ја стартуваш кодот, што ќе се испише во конзолата:

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

Определи, без да ја стартуваш кодот, што ќе се испише во конзолата:

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();
Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј