请给我一些关于这个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);
感谢您的帮助或线索。
答案 0 :(得分:1)
取决于范围,使用window.markers
来访问全局标记。
答案 1 :(得分:1)
你在使用markers
调用的函数中推送setTimeout
,因此推迟直到一段时间后才会发生。但是,在发生任何超时之前,您立即呼叫alert(markers)
。所以当时阵列是空的。
更新:
要查看markers
的最终内容,您需要另一个setTimeout
:
setTimeout(function() { alert(markers); }, netotal*50);