Например, я допустим напишу,
;(function(){
var request = new XMLHttpRequest
request.open("GET", "foo")
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status == 200) alert("foo")
request.send(null)
}
})()
Утверждается, что сборщик стартует от root. Я так понимаю, что от какого то глобального объекта, или чего-то в этом роде.
У нас что получается. Объект функции отработал, и создал замыкание. В этом замыкании создана ссылка на экземпляр XMLHttpRequest. но на само замыкание никаких внешних ссылок нет. Значит, все это должно быть уничтожено. А что если они будут уничтожены, прежде, чем придет ответ от сервера? Как же тогда отработает коллбек?