为什么数组在JavaScript中由单独的函数调用时会丢失其值?

时间:2016-01-29 15:04:28

标签: javascript arrays

我的脚本中有一个全局数组,它从特定的函数调用中获取其值。参见示例:

var myglobalArray = []; 
.
.
.

function createMarkersToFillArray(property1, property2) {
    var marker= new google.maps.Marker({ position: latlng, map: map });
    marker.property1 = property1;
    marker.property2 = property2; 
    myGlobalArray.push(marker);
    return marker;
}

function getStuffFromXMl() {
    downloadUrl("myXMLFile.xml", function (data) {      
             var xmlItems = data.documentElement.getElementsByTagName("row");

             for (var i = 0; i < xmlItems.length; i++) {

                 var property1= xmlItems[i].getAttribute("Property");
                 var property2 = xmlItems[i].getAttribute("Property2");
                 var marker = createMarkersToFillArray(property1, property2);
             }
   });
}

上面的代码完全符合我的预期。当我尝试访问myGlobalArray函数中的initialize()元素时,会出现此问题。

function initialize() {
    getStuffFromXML(); //this should populate myGlobalArray with the markers, but it doesn't
}

它表示即使将标记添加到数组中,该数组也是空的。当我尝试在myGlobalArray函数中访问它们时,有人可以解释为什么initialize()的元素会消失吗?

0 个答案:

没有答案