⊗jsPmClCr 263 of 505 menu

Шумориш бо истифода аз closure дар JavaScript

Биёед коди дидашударо ба тавре нависем, ки функсияи баргардонидашуда ҳар дафъа қимати тағйирёбандаи num ро як воҳа афзоиш диҳад:

function test() { let num = 1; return function() { console.log(num); num++; // як воҳа меафзоем } } let func = test();

Ҳосил мешавад, ки ҳар даъвати функсияи func қимати навро ба консол мебарорад:

function test() { let num = 1; return function() { console.log(num); num++; } } let func = test(); func(); //1-ро мебарорад func(); //2-ро мебарорад func(); //3-ро мебарорад func(); //4-ро мебарорад func(); //5-ро мебарорад

Ҳосил мешавад, ки мо шумориши даъвати функсияҳоро амалӣ кардем, бо истифода аз closure (дақиқтар, бо истифода аз тағйирёбандаи num аз closure-и функсияи мо).

Дар назар доред, ки ҳар даъвати функсияи test функсияи наверо бармегардонад, ки closure-и худро дорад. Яъне шуморишҳои гуногун мустақил кор мекунанд:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // шумориши аввал func1(); //1-ро мебарорад func1(); //2-ро мебарорад let func2 = test(); // шумориши дуюм func2(); //1-ро мебарорад func2(); //2-ро мебарорад

Ҳосил мешавад, ки ҳамон тағйирёбандаи num барои функсияҳои гуногун қиматҳои гуногун хоҳад дошт!

Яъне агар мо функсияи test-ро ду маротиба даъват кунем, он гоҳ функсияҳое, ки аз он ба даст омадаанд, ба таври мустақил кор карда, ҳар яке аз онҳо тағйирёбандаи мустақили num-ро хоҳанд дошт.

Худ, ба коди ман наменазаред, шумориши даъвати функсияеро амалӣ кунед, ки бо closure кор мекунад.

Бигзор функсия дар closure рақами 10-ро нигоҳ дорад. Ба тавре созед, ки ҳар даъвати функсия ин рақамро 1 кам кунад ва рақами камшударо ба консол мебарорад.

Масъалаи гузаштаро тавре дигаргардонед, ки шумориш то 0 бирасад, он гоҳ ҳар даъвати баъдинаи функсия паёмеро ба консол мебарорад, ки шумориш ба поён расидааст.

Тоҷикӣ
AfrikaansAzə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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан