РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗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 истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан