Замыканні і выклік функцыі на месцы ў 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
, а потым адлік пачынаўся
зноў.