javascript - 如何通过对象传递回调的结果?

标签 javascript oop

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

相关文章:

c# - 在其他类中组合一个类的对象时如何进行验证?

ruby - Ruby 模块中的私有(private)类(不是类方法)?

c++ - 对象和变量上的指针 C++

javascript - 单击以关闭移动设备上的 jQuery 下拉菜单,同时保留其他行为

javascript - 所选索引更改后 Jquery 数据表丢失 dropdownlist asp.net 更新面板

php - 用户提交的无效数据的适当 HTTP 响应是什么?

javascript - NgFor/NgIf 中的 Angular 2 对象插值问题

javascript - Font-Awesome 在 IE8 中渲染不一致

javascript - 使用原型(prototype)与直接在构造函数中定义方法相比有何优点?

oop - 为什么需要扩展对象?