我正在执行Google本地搜索,并希望通过对象返回lat / long。 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());
}
答案 0 :(得分:1)
当您引用函数gs.searchComplete
时,您将从该对象所属的对象中分离该方法。将其切换为function () { gs.searchComplete(); }