我正在执行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/

10-09 18:32