Я использую 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();) тоже