⊗jsPmClCNG 265 of 505 menu

Tofauti ya Ulimwengu ya Khesimu katika JavaScript

Tutoee tofauti num nje ya kazi, kwa kufanya hivyo tukifanya iwe ya ulimwengu:

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

Katika kesi hii kazi zote zitarudi (kubadilisha hii tofauti ya ulimwengu na khesimu (kata kufanya kazi tayari kutegemeana:

let num = 1; function test() { return function() { console.log(num); num++; }; } let func1 = test(); // khesimu ya kwanza func1(); // itaonyesha 1 func1(); // itaonyesha 2 let func2 = test(); // khesimu ya pili func2(); // itaonyesha 3 func2(); // itaonyesha 4

Kwa nini msimbo wetu uliopita ulifanya khesimu (zisizotegemeana? Nakukumbusha msimbo huu:

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

Jambo ni kwamba tofauti num - ya ndani ndani ya kazi test. Kwa hivyo kila (wito test huleta tofauti yake ya ndani.

Kwa hivyo kazi zitarudi (rejea kila moja kwa tofauti yake ya ndani ya kazi test. Hivi ndivyo utofauti wa kufanya kazi (unavyopatikana.

Ikiwa tutafanya num kuwa tofauti ya ulimwengu - hii pia itakuwa kufunga. Tu mazingira ya kisarakasi ya kazi zitarudi (rejea kwa tofauti ile ile num - yoyote mabadiliko na tofauti hii yataonekana kwa kazi zote.

Amua, bila kukimbiza msimbo, nini kitaonyeshwa kwenye koni:

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

Amua, bila kukimbiza msimbo, nini kitaonyeshwa kwenye koni:

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

Amua, bila kukimbiza msimbo, nini kitaonyeshwa kwenye koni:

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();
Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa