ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmFCCl 274 of 505 menu
Хочешь читать code.mu на своем родном языке? Помоги с переводом! Переведем мы сами, тебе нужно указать на ошибки перевода:) Оставляй заявку ->

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

byenru