鑒于以下示例,為什么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 = 'Hello Asynchronous World!';}, 0);alert(outerScopeVar);// Example using some jQueryvar outerScopeVar;$.post('loldog', function(response) {
outerScopeVar = response;});alert(outerScopeVar);// Node.js examplevar outerScopeVar;fs.readFile('./catdog.html', function(err, data) {
outerScopeVar = data;});console.log(outerScopeVar);// with promisesvar outerScopeVar;myPromise.then(function (response) {
outerScopeVar = response;});console.log(outerScopeVar);// geolocation APIvar outerScopeVar;navigator.geolocation.getCurrentPosition(function (pos) {
outerScopeVar = pos;});console.log(outerScopeVar);為什么undefined在所有這些例子中輸出?我不想要解決方法,我想知道為什么會這樣。
為什么我的變量在函數內部修改后沒有變化? - 異步代碼引用
拉丁的傳說
2019-05-20 15:19:02