Google Maps API V3 - 子类google.maps.Marker:如何调用父方法?

Can*_*nam 5 javascript google-maps

我正在尝试将非常有用的LabeledMarker类转换为Google Maps API V3.我在我的V2地图中使用过它......但我想在V3地图中找到类似的东西.我读了迈克关于扩展GMarker 的文章.

我试图用google.maps.Marker做同样的事情,但我遇到了一些问题.

这是我非常简单的代码:

function LabeledMarker(opts) { // constructor  
    google.maps.Marker.apply(this, arguments);  
}  

LabeledMarker.prototype = new google.maps.Marker();  

LabeledMarker.prototype.onAdd = function() {  
    alert('onAdd1');  
    google.maps.Marker.prototype.onAdd.apply(this, arguments);     
    alert('onAdd2');  
}  

LabeledMarker.prototype.draw = function() {  
    alert('draw1');  
    google.maps.Marker.prototype.draw.apply(this, arguments);  
    alert('draw2');  
}  

LabeledMarker.prototype.onRemove = function() {  
    alert('onRemove1');  
    google.maps.Marker.prototype.onRemove.apply(this, arguments);  
    alert('onRemove2');  
}  
Run Code Online (Sandbox Code Playgroud)

这是我如何称呼它:

var point = new google.maps.LatLng(37, -59);  
var labeledMarker = new LabeledMarker({  
     map: map,  
     position: point,  
     labelText: 'Label'  
});  
Run Code Online (Sandbox Code Playgroud)

这是一个URL:http://www.canamgroup.ws/GM.nsf/Map2?OpenPage

我的标记显示在地图上(所以我假设我的构造函数成功调用了google.maps.Marker构造函数)但我的onAdd,draw和onRemove中的警报从未被触发(因此我假设我的方法没有成功调用google.maps.Marker方法).

这是Mike在V2中的方式(除了方法名称不同).我试过了:

google.maps.Marker.prototype.draw.apply(this, arguments);  
google.maps.Marker.prototype.draw.apply(this);  
google.maps.Marker.prototype.draw.call(this);  
google.maps.Marker.prototype.draw.call(this, arguments);  
Run Code Online (Sandbox Code Playgroud)

我刚开始编写OO Javascript代码,所以我可能会遗漏一些东西?或许我必须在V3中做一些不同的事情?有人可以帮忙吗?

谢谢!