Бесконечный цикл таймера с JavaScript (без setInterval)?

Меня попросил (друг) построить таймер (бесконечный, который пишет строку каждую секунду), но безsetInterval.

I решена это с :

var i = 0;

    function k(myId, cb)
    {
        setTimeout(function ()
        {
            console.log(myId);
            cb();
        }, 1000);
    }

    function go()
    {
        i++;
        k(i, go);
    }

    go();

И это работает.

Проблема в том, что я боюсь, что будет давление памяти. Это фактически создает рекурсию и через некоторое время (неделю или что-то) - процесс будет занимать много памяти. (стек никогда не освобождается)

Как я могу изменить свой код, чтобы не занимать много памяти?

Ответы на вопрос(3)

Ваш ответ на вопрос