Проблема в том, что вам нужен доступ к постоянной переменной, чтобы отслеживать текущую страницу между popular
вызовами. Если вам не нужна переменная global , но вы можете использовать переменную external , один из вариантов - создать переменную currentPage
, имеющую только область действия popular
, и нельзя увидеть или изменить в другом месте: используйте IIFE, который объявляет currentPage
и возвращает текущую popular
функцию:
const popular = (() => {
let currentPage = 1;
return (page) => {
fetch( ...
// ...
// put the rest of the big function here
};
})();
// make sure to call `popular` for the first time *after* the IIFE:
// function declarations are hoisted, but IIFEs are not
popular();
Хотя currentPage
не локально внутри функции (page) => {
, оно достигает того, что вы ищете, без какого-либо ненужного глобального загрязнения.