JavaScript-те жабылымдар және функцияны орнында шақыру
Сіз білетіндей, анонимді функцияны орнында шақырып, оның жұмыс нәтижесін қандай да бір айнымалыға тағайындауға болады:
let result = function() {
return '!';
}();
console.log(result); // шығарады '!'
Көбінесе, орнында шақырылатын функцияны мұндай жағдайда дөңгелек жақшаға алады, бірақ бұл қажет емес. Бұл функцияның орнында шақырылатынын бірден көру үшін жасалады:
let result = (function() {
return '!';
})();
console.log(result); // шығарады '!'
Енді орнында шақырылған функцияның нәтижесі анонимді функция болсын:
let func = (function() {
return function() {
console.log('!');
}
})();
func(); // шығарады '!'
Қайтарылатын функция жабылымда
num айнымалысын сақтайтындай етейік:
let func = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
Егер тағы num++ қоссақ, онда
func функциясы
дайын есептегішке айналады:
let func = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
func(); //шығарады 1
func(); //шығарады 2
func(); //шығарады 3
func(); //шығарады 4
func(); //шығарады 5
Менің кодымға қарамастан, өзіңіз осындай есептегішті жүзеге асырыңыз.
Есептегіштің жұмысын өзгертіңіз, ол
5-ке дейін санасын, содан кейін есептеу бастапқы
күйден басталсын.