Использование JavaScript-замыканий в setTimeout

Я использую setTimeout для эмуляции рендеринга, и я пришел к такой структуре:

var Renderer = new Class (
{
    Implements: Events,

    initialize()
    {
        this.onRender();
    },

    onRender: function()
    {
        // some rendering actions
        setTimeout(this.onRender.bind(this), 20);
    }
});

Имеет ли этот код потенциальные утечки памяти из-за бесконечной вложенности замыканий? Или все в порядке? Единственное решение, которое я нашел, - это переписать его на обычный

function Renderer()
{
    var onRender = function()
    {
        // rendering
        setTimeout(onRender, 20);
    };
    onRender();
};

Но я не хочу терять Mootools Events и Classes. По некоторым причинам я не могу использовать "синглтон" (например, window.renderer = new Renderer ();) тоже

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

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