gpt4 book ai didi

javascript - 将带有javascript闭包的参数附加到匿名函数中的默认参数

转载 作者:数据小太阳 更新时间:2023-10-29 05:47:20 24 4
gpt4 key购买 nike

我想在 Google geocoder API 调用中添加一些额外的参数,因为我在循环中运行它,但我不确定如何将闭包参数附加到已经具有由调用 API。

例如:

for(var i = 0; i < 5; i++) {
geocoder.geocode({'address': address}, function(results, status) {
// Geocoder stuff here
});
}

我希望能够在传递的 geocoder.geocode() 匿名函数中使用 i 的值,但是如果我有一个闭包使用 }(i)); 例如在第 4 行这将替换会破坏地理编码器的第一个参数。

有没有办法可以使用闭包,或者将 i 的值传递给匿名函数?

实际上我想做的是:

geocoder.geocode({'address': address}, function(results, status, i) {
alert(i); // 0, 1, 2, 3, 4
}(i));

但工作 :-)

最佳答案

您可以直接从您的匿名函数(通过闭包)访问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);
}

关于javascript - 将带有javascript闭包的参数附加到匿名函数中的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3978806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com