У меня есть функция, которая называет себя рекурсивно на setTimeout. Проблема заключается в том, что он теряет свой объем на этом пути.Область Javascript, как сохранить модуль
Так это то, что у меня есть ...
var module = function() {
function init() {
if (notYetReadySoTryAgain) {
setTimeout(this.init,100);
return
}
}
}
Второй раз через я получаю сообщение об ошибке инициализации не может быть найден (на объекте Window).
Что такое канонический способ справиться с поддержанием ссылки на модуль через setTimeout?
вы замыкание. google search 'javascript clos' – unludo
Где находится 'notYetReadySoTryAgain'? –
Просто опустите ключевое слово ['this'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this), которое не имеет ничего общего с областью видимости. Вы можете напрямую ссылаться на функцию 'init' через' setTimeout (init, 100) '- это не свойство чего-либо. – Bergi