我正在执行Google本地搜索,并希望通过一个对象返回经纬度。
Google搜索本身可以正常工作。
在对象本身中检查(使用console.log或alert())时,结果字段似乎已填充为OK。
但是,在检查对象的实例时(在运行回调之前已实例化),结果为空白。我知道我不需要访问器功能-两种方法的最终结果都是相同的。
这里缺少基本的东西吗?谢谢!
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/