Pourquoi ma variable est-elle inchangée après ma modification dans une fonction? - Référence de code asynchrone

Étant donné les exemples suivants, pourquoi est outerScopeVarindéfini dans tous les cas? var outerScopeVar; var img = document.createElement('img'); img.onload = function() { outerScopeVar = this.width; }; img.src = 'lolcat.png'; alert(outerScopeVar); var outerScopeVar; setTimeout(function() {...