Почему моя переменная не изменилась после того, как я изменил ее внутри функции? - асинхронная ссылка на код

Учитывая следующие примеры, почему не outerScopeVarопределено во всех случаях? var outerScopeVar; var img = document.createElement('img'); img.onload = function() { outerScopeVar = this.width; }; img.src = 'lolcat.png'; alert(outerScopeVar); var outerScopeVar; setTimeout(function() { outerScopeVar...