Hallo,
Ich vermute Dein Problem liegt hier:
GEvent.addListener(this.Marker, 'click', this.myFunction);
Dies übergibt zwar das Funktionsobjekt "this.myFunction" - aber eben nur das Funktionsobjekt. Wenn der Listener ausgeführt wird, kennt dieser die Referenz auf "this" nicht mehr:
MyObject.prototype.myFunction = function (){
alert(this.Parameter);
};
"this" bezieht sich hier nicht mehr auf die Instanz von MyObject (sondern vermutlich auf GEvent)!
Eine Mögliche Lösung: Du übergibst die aktuelle Instanz als Variable, um den Scope so in den Listener "herrüber zu retten".
function MyObject (){
this.Parameter=5;
this.Marker = new GMarker(new GLatLng(0,0));
GEvent.addListener(this.Marker, 'click',
this.myFunction(this));
Map.addOverlay(this.Marker);
}
MyObject.prototype.myFunction = function (instance){
alert(instance.Parameter);
};
Eine andere Möglichkeit:
function MyObject (){
this.Parameter=5;
this.Marker = new GMarker(new GLatLng(0,0));
var scope = this;
var listener = function () {scope.myFunction();};
GEvent.addListener(this.Marker, 'click', listener);
Map.addOverlay(this.Marker);
}
MyObject.prototype.myFunction = function (){
alert(this.Parameter);
};
(ohne Gewähr ;) )
Hope that helps.
Viele Grüße,
Jörg