Back to tasks
СБЕРGet help with live coding in real time with Sobes Copilot
Junior — Senior
33
Создание массива функций с замыканием и выводом индексов
Companies where asked:
Task condition
В функции assemblePages формируется массив, заполняемый функциями, которые выводят текущий номер страницы. При каждом проходе цикла создаётся новая функция, сохраняющая значение счётчика. После завершения цикла массив возвращается, и отдельные функции можно вызвать для вывода нужных номеров.
function assemblePages() {
let pages = [];
let i = 0;
while (i < 10) {
const printPage = function () {
console.log(i);
};
pages.push(printPage);
i++;
}
return pages;
}
let bookReader = assemblePages();
bookReader[0]();
bookReader[5]();
В данном примере демонстрируется, как замыкание сохраняет ссылку на переменную счётчика, поэтому при вызове функций после завершения цикла будет выведено последнее значение счётчика, а не значение на момент создания функции. Это типичный кейс для обсуждения поведения замыканий в JavaScript.