1
                    google.maps.event.addListener(marker, 'rightclick', (function(marker, i) {
                return function() {

                marker.setMap(null);

                }
                })(marker, i));

我从网上得到了这段代码,效果很好。我不确定函数尾部的“(marker,i)”的含义。有人可以对此进行更多解释吗?

谢谢你!

4

2 回答 2

0

这是一个自调用函数。

(marker, i)是调用函数时传递的参数。

于 2012-04-15T22:26:40.727 回答
0

关键是创建一个新的范围。

如果你只是这样做:

google.maps.event.addListener(marker, 'rightclick', function() {
        marker.setMap(null);
    }
});

marker如果以后更改,它将失败。此代码可能在循环中使用。然而,这i是毫无意义的。可以简化为:

google.maps.event.addListener(marker, 'rightclick', (function(marker) {
    return function() {
        marker.setMap(null);
    }
})(marker));
于 2012-04-15T22:29:09.550 回答