Использование 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 ();) тоже