Javascript回调和谷歌地图api问题

时间:2010-06-01 17:41:18

标签: javascript callback google-maps-api-3

我正在使用google maps api v3并且有一个数组对象数组:

MVCArray.<MVCArray.<LatLng>>

我想迭代这个。我看到MVCArray有一个方法forEach使用回调,但我不知道如何使用它(我没有做太多的js)。 api将此方法定义如下:

forEach(callback:function(*, number)))

有人可以给我一个如何使用MVCArray的MVCArray(我需要拉出每个LatLng对象)的例子吗?

2 个答案:

答案 0 :(得分:2)

在JavaScript中,您可以传递函数,就像传递任何其他类型的数据一样。通常有两种方法可以解决这个问题。

首先,您可以按照常规方式定义一个函数并为其命名:

function myHappyFunction(item, index) {
   // Do things using the passed item and index
}
...forEach(myHappyFunction);

在这里,您将创建的函数传递给forEach函数。 myHappyFunction现在会被多次调用,每次都会从列表中传递不同的项目。

或者,您可以通过直接传递函数来避免需要提供一个聪明的函数名称,如下所示:

...forEach(function(item, index) {
    // Do things using the passed item and index
});

这种行为方式相同,但无需为您可能希望传递的每个函数开发唯一的名称。

答案 1 :(得分:1)

只是为了澄清@ VoteyDisciple的答案,这是一个真实的例子

aMarker是MVCArray对象,默认情况下,draggable设置为false。所以当用户切换到'true'时,我的代码会调用:

aMarker.forEach(function(item, index) {
    aMarker[index].setDraggable(true);
});

并使它们可以拖动。