Whe*_*rdy 5 javascript closures google-geocoder
我想在Google地理编码器API调用中添加一些额外的参数,因为我在循环中运行它,但我不知道如何将闭包参数附加到已经具有默认参数的匿名函数,该默认参数通过调用传入API.
例如:
for(var i = 0; i < 5; i++) {
geocoder.geocode({'address': address}, function(results, status) {
// Geocoder stuff here
});
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在传递的geocoder.geocode()匿名函数中使用i的值,但是如果我}(i));在第4行使用了一个闭包,例如它将替换第一个会破坏地理编码器的参数.
有没有办法可以使用闭包,或者将i的值传递给匿名函数?
有效的我想做的是:
geocoder.geocode({'address': address}, function(results, status, i) {
alert(i); // 0, 1, 2, 3, 4
}(i));
Run Code Online (Sandbox Code Playgroud)
但工作:-)
Gab*_*art 11
您可以i直接从您的匿名函数(通过闭包)访问,但您需要捕获它,以便每次调用geocode获得自己的副本.像往常一样在javascript中添加另一个函数就可以了.我重命名了外部i变量以使其更清晰:
for(var iter = 0; iter < 5; iter++) {
(function(i) {
geocoder.geocode({'address': address}, function(results, status) {
// Geocoder stuff here
// you can freely access i here
});
})(iter);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3540 次 |
| 最近记录: |