Javascript 向回调添加参数
我目前正在使用谷歌地图API,但我遇到了一个无法解决的问题。 我使用Javascript的经验非常有限,所以答案可能相当简单 我的代码目前与此非常接近 我遇到问题的代码部分是:Javascript 向回调添加参数,javascript,google-maps,google-maps-api-3,callback,Javascript,Google Maps,Google Maps Api 3,Callback,我目前正在使用谷歌地图API,但我遇到了一个无法解决的问题。 我使用Javascript的经验非常有限,所以答案可能相当简单 我的代码目前与此非常接近 我遇到问题的代码部分是: function performSearch() { var request = { bounds: map.getBounds(), keyword: 'best view' }; service.radarSearch(request, callback); } function cal
function performSearch() {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, callback);
}
function callback(results, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
for (var i = 0, result; result = results[i]; i++) {
createMarker(result);
}
}
我稍微修改了代码,以便performSearch有一个输入参数。
我想让回调函数也知道这个参数
所以我想实现的是这样的目标:
function performSearch(aParameter) {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, callback(aParameter));
}
function callback(results, status, aParameter) {
console.log("callback knows about : " + aParameter);
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
for (var i = 0, result; result = results[i]; i++) {
createMarker(result);
}
}
function performSearch(aParameter) {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, function(results, status){
resultCallback(results, status, aParameter);
});
}
我尝试了许多方法将参数插入回调,但到目前为止,我所有的尝试都失败了
那么,在不使用全局变量的情况下,为回调提供额外参数的方法是什么呢
更多信息:
谢谢你的帮助 好的,问题确实是我的Javascript经验不足:) 我找到了解决问题的方法 我们的想法是这样做:
function performSearch(aParameter) {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, callback(aParameter));
}
function callback(results, status, aParameter) {
console.log("callback knows about : " + aParameter);
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}
for (var i = 0, result; result = results[i]; i++) {
createMarker(result);
}
}
function performSearch(aParameter) {
var request = {
bounds: map.getBounds(),
keyword: 'best view'
};
service.radarSearch(request, function(results, status){
resultCallback(results, status, aParameter);
});
}