我正在执行 Google 本地搜索,并希望通过对象返回纬度/经度。 Google 搜索本身运行良好。
在对象本身中检查(使用 console.log 或 alert())时,结果字段似乎填充正常。
但是,当检查对象的实例(在运行回调之前实例化)时,结果为空。我知道我不需要访问器函数 - 两种方式的最终结果都是一样的。
这里是否缺少一些基本的东西?谢谢!
function GeoSearch() {
this.results = [];
this.searchComplete = function(localSearch) {
if(localSearch.results[0]) {
var resultLat = localSearch.results[0].lat;
var resultLng = localSearch.results[0].lng;
this.results = localSearch.results[0].lat;
}
}
this.getResults = function() {
return this.results;
}
}
function populateCoords(postcode) {
var localSearch = new google.search.LocalSearch();
var gs = new GeoSearch();
localSearch.setSearchCompleteCallback(gs, gs.searchComplete, [localSearch]);
localSearch.execute(postcode + ", UK");
alert(gs.getResults());
}
最佳答案
当您引用函数 gs.searchComplete
时,您正在将该方法与其所属的对象分离。将其切换为 function () { gs.searchComplete(); }
关于javascript - 如何通过对象传递回调的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2629976/