将方法指针传递给google.maps.event.addListener
时,Google地图似乎会用this
的实例覆盖它的google.maps.Map
引用,因此如果方法引用它会使其无效它内部的任何原型成员。
长话短说,如果我将myObj.MyMethod
作为事件回调传递,则在执行时MyMethod.this
引用将是google.maps.Map
而不是myObj
的实例
有没有办法安全地将方法指针传递给addListener并保持其所有引用不变?
非常感谢!
答案 0 :(得分:1)
当您使用addListener()
传递方法时,方法的传递对象将在发生事件时丢失,因此未定义结果方法,您应该调用类似
google.maps.event.addListener('someEvent', function (){
myObj.MyMethod.call(myObj); //invoked MyMethod with reference myObj
//myObj.MyMethod.apply(myObj); <= you can use apply method also
})