[英]Javascript Global variable only update inside anonymous function
請給我一些線索來解決這個javascript問題。 我有一個全局變量標記。 並嘗試將每個標記推送到標記。 但問題是,在推動標記之后。 我試圖提醒功能和外部功能的價值。 結果完全不同。 函數內部的標記給我標記數組,但外面的標記保持空白。 為什么我得到了標記全局變量的不同值?
這是我的代碼片段:
for (var i = 0; i < netotal; i++) {
setTimeout(function () {
marker = new google.maps.Marker({
position: pos[iterator],
map: map,
draggable: false,
animation: google.maps.Animation.DROP,
icon: neicon
});
iterator++;
markers.push(marker);console.log(markers);
}, i * 50);
}
alert (markers);
謝謝你的幫助或線索。
取決於范圍,訪問全局標記使用window.markers
。
你正在推動使用setTimeout
調用的函數中的markers
,因此推遲直到一段時間后才會發生。 但是,在發生任何超時之前,您會立即呼叫alert(markers)
。 所以那時數組是空的。
更新:
要查看markers
的最終內容,您需要另一個setTimeout
:
setTimeout(function() { alert(markers); }, netotal*50);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.