Не могу понять, почему не получается?

<button onclick="abbr();">Нажми меня для запуска</button>
<p id="example"></p>
<script>
  function abbr() {
    let a = 0;
    let timerId = setTimeout(Seconds, 1000, a);
  }

  function Seconds(a) {
    let t = document.getElementById("example");
    t.innerHTML = a;
    a += 1;
    if (a > 4) {
      window.close();
    }
    return a;
  }
</script>


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

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

function abbr() {
  let a = 0;
  let timerId = setTimeout(Seconds, 1000, a);
}
function Seconds(a) {
  let t = document.getElementById("example");
  t.innerHTML = a;
  a += 1;
  if(a > 4) { window.close(); }
  return a;   
}
<button onclick="abbr();">Нажми меня для запуска</button>
<p id="example"></p>

А что именно не получается?

По хорошему ваш скрипт должен быть объявлен до элемента, в котором он используется.

Поэтому приходится вызывать/описывать нужные функции после подгрузки всей страницы (onLoad)

→ Ссылка
Автор решения: Igor

<button onclick="abbr();">Нажми меня для запуска</button>
<p id="example"></p>
<script>
  function abbr() {
    setTimeout(Seconds, 1000, 0);
  }

  function Seconds(a) {
    let t = document.getElementById("example");
    t.innerHTML = a;
    if (a < 4) {
      setTimeout(Seconds, 1000, a + 1);
    }
  }
</script>

→ Ссылка