簡體   English   中英

Javascript全局變量僅在匿名函數內更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM