Dlaczego moja zmienna pozostaje niezmieniona po zmodyfikowaniu jej w funkcji? - Odniesienie do kodu asynchronicznego

Biorąc pod uwagę następujące przykłady, dlaczego outerScopeVarwe wszystkich przypadkach jest niezdefiniowany? var outerScopeVar; var img = document.createElement('img'); img.onload = function() { outerScopeVar = this.width; }; img.src = 'lolcat.png'; alert(outerScopeVar); var...