Проблема с плюсованием, я даже не знаю как это объяснить

В коде четко и ясно указано, что функция Plus выполняется каждую секунду, добавляя 1 к переменной Test. В моем случае функция выполняется огромное количество раз в секунду, что приводит к зависанию страницы, в чем может быть проблема? Помогите!!!

Первый раз сталкиваюсь с подобным, до этого много работал с таймером setInterval и т.д.И это всего за пару минут

<script>
    Test = 0;
    function Plus(){
        Test++;
        console.log("Test = " + Test);
        setInterval(Plus, 1000);
    }
    Plus();
</script>

Ответы (2 шт):

Автор решения: Grundy

setInterval запускает повторяющийся таймер, который будет сам запускаться через равные интервалы.

Внутри Plus запускается setInterval, который каждый раз запускает Plus, в котором запускается новый setInterval. Таким образом количество запущенных интервалов постоянно увеличивается.

Для решения нужно либо запускать Plus отдельно в интервале

Test = 0;
function Plus(){
    Test++;
    console.log("Test = " + Test);
}
Plus();
setInterval(Plus, 1000);

Либо использовать setTimeout, который запускается только один раз:

Test = 0;
function Plus(){
    Test++;
    console.log("Test = " + Test);
    setTimeout(Plus, 1000);
}
Plus();
→ Ссылка
Автор решения: Jack Garner

а зачем вы сначала вызываете plus, а потом еще раз в setInterval? Так ведь тоже работает:

Test = 0;
function Plus(){
    Test++;
    console.log("Test = " + Test);
}
setInterval(Plus, 1000);
→ Ссылка