google在类内映射javascript directionsService.route请求:将类实例传递给回调函数
google maps javascript directionsService.route request inside class: pass the class instance to the callback function
谷歌地图方向服务路线请求具有以下原型:
route(request:DirectionsRequest, callback:function(DirectionsResult, DirectionsStatus))
我在类实例方法中调用服务请求,该方法看起来像这样:
myClass.protype.routeStuff(){
directionsService.route(request, function(response, status){
'''handle the response here'''
});
};
我需要访问"中的myClass实例,在此处处理响应"。我不是JS专家。我怎样才能把它传下去?
更一般地说,给定路由的原型,我如何将额外的参数传递给回调函数?
更新1:我最终使用Chad的答案创建了一个调用的类回调方法:
directionsService.route(request, this.extendRouteToLocationCallback.bind(this));
独立地,我能够通过强制关闭回调函数来解决这个问题,如下所示:
var extrastuff = this;
directionsService.route(request, function (response, status) {
routeCallback(extrastuff, response, status);});
我相信这样做也是可能的:
directionsService.route(request, function (response, status) {
routeCallback(response, status);}.bind(this));
就我的直接目的而言,Chad的方法产生了一些更好的结构化代码。
更新2:我采用的最终解决方案与此绑定,并传递了如下额外的参数:
var request = buildMapRequest(currentEndLocation, null, location);
directionsService.route(request, this.extendRouteToLocationCallback.bind(this, location));
回调看起来是这样的:
Route.prototype.extendRouteToLocationCallback = function(location, response, status){...}
使用函数绑定
function directionsServiceCallback(response, status){
// this keyword is now a reference to a myClass instance due to
// function binding.
});
myClass.protype.routeStuff(){
directionsService.route(request, directionsServiceCallback.bind(this));
};
相关文章:
- ES6构造函数返回基类的实例
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 如何用javascript调用函数,然后在滚动事件中调用该函数的特定实例
- google在类内映射javascript directionsService.route请求:将类实例传递给回调函数
- 如何在事件函数中访问窗口实例
- Javascript:只有在代码中使用单个实例时,函数才能正常工作
- 调用函数和创建函数实例之间的Javascript差异
- setTimeout是否创建函数实例
- 在 JavaScript 中,当我们实例化派生对象时,原型的函数隐藏在哪里
- 挖空视图模型函数仅影响最后一个实例
- 在数组中的每个对象上调用实例函数
- 从 $scope 上的函数访问控制器内的实例函数
- 实例函数变量不会更改
- 如何在angularjs中获取实例函数
- Javascript——如何在不使用新运算符的情况下启用静态方法,同时防止使用实例函数
- 如何将实例函数传递给外部函数
- 如何比较两个不同的javascript对象相同的属性(不比较实例函数)
- 使用WinJS构造函数中的实例函数
- 使用tcomb,是我遗漏了什么,还是无法定义实例函数
- 使用jQuery时可以调用实例函数吗?