let interval = setInterval(function(currentNumber){
console.log(currentNumber);
currentNumber++;
}, 1000, 5);
let interval = setInterval(function(obj){
console.log(obj.currentNumber);
obj.currentNumber++;
}, 1000, {currentNumber:5});
function foo(currentNumber){
console.log(currentNumber);
currentNumber++;
}
setInterval(foo, 1000, 5);
Здесь, наверное, понятно, почему будет каждый раз 5 ?foo(5); // выведет 5
foo(5); // выведет 5
foo(5); // выведет 5
Внутренняя переменная функции изначально 5, выводит 5 и становится 10. Функция завершила работу, про переменную все забыли.