Usando fechamentos JavaScript em setTimeout

Estou usando setTimeout para emular a renderização e cheguei à estrutura assim:

var Renderer = new Class (
{
    Implements: Events,

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

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

Esse código tem vazamentos de memória em potencial devido ao aninhamento infinito de fechamentos? Ou está tudo bem? A única solução que vim até agora é reescrevê-la para o habitual

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

Mas não quero perder eventos e classes do Mootools. Por algumas razões, não posso usar um "singleton" (como window.renderer = new Renderer ();) também

questionAnswers(2)

yourAnswerToTheQuestion