function extendedElement(elm) {
this.element = elm;
this.echo = function() {
alert(this); /* ist beim direkten Aufruf die KlassenInstanz
aber beim Aufruf über onmouseover das element von dem der Event stammt */
alert( "has the value: " + this.element.value); /* hier möchte ich evtl.
noch andere eigenschaften der Instanz benutzen */
}
this.element.onmouseover = this.echo; //event anhängen
}
this.echo ist immer nur eine Referenz auf eine Funktion, also ein Wert, den du zuweist.
Beim Aufruf der Funktion wird der Bezug zu *this* jedesmal neu erzeugt und nicht in dem Moment wo du dem Event die Referenz auf die Funktion angibst, da ja this kein festehender Wert ist sondern jedesmal neu vergeben wird.
Dir bleibt, wenn du es so machen willst wie bisher, nur der Umweg über ein zusätzliches Objekt.
function extendedElement(elm) {
this.element = elm;
this.element.parent = this;
this.echo = function() {
alert(this.parent);
alert( "has the value: " + this.value);
}
this.element.onmouseover = this.echo; //event anhängen
}
Struppi.