Kufunga na Kuitekeleza Kazi Papo Hapo katika JavaScript
Kama unavyojua tayari, inawezekana kuitekeleza kazi isiyo na jina papo hapo na kukabidhi matokeo ya kazi hiyo kwa kutofautisha fulani:
let result = function() {
return '!';
}();
console.log(result); // itatoa '!'
Mara nyingi kazi, inayoitwa papo hapo, kwa hali kama hii huchukuliwa kwenye mabano ya duara, ingawa hakuna haja ya kufanya hivyo. Hii hufanywa ili kuweza kuona mara moja kwamba kazi inatekelezwa papo hapo:
let result = (function() {
return '!';
})();
console.log(result); // itatoa '!'
Hebu sasa matokeo ya kazi iliyoteuliwa papo hapo iwe kazi isiyo na jina:
let func = (function() {
return function() {
console.log('!');
}
})();
func(); // itatoa '!'
Hebu tufanye hivi, ili kazi inayorudishwa
ihifadhi katika kufunga kutofautisha num:
let func = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
Kama ukiongeza num++, basi kazi
func itakuwa kihesabuji tayari:
let func = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
func(); // itatoa 1
func(); // itatoa 2
func(); // itatoa 3
func(); // itatoa 4
func(); // itatoa 5
Bila kuangalia kwenye msimbo wangu, wewe mwenyewe itekeleza kihesabuji kama hicho.
Badilisha utendaji wa kihesabuji, ili
kihesabu hadi 5, kisha hesabu ianze
upya.