Hallo,
Nur nebenbei, bei Deinem 1. Beispiel zum "this-problem" kommen bei mir zwei alerts "start wurde aufgerufen ...", erst das Dritte ist "verzögert ...". Vielleicht spinnt mein FF grade.
Hier übrigenswill mein FF zwei Zeile über "var instanz ..." kein Semikolon am Ende:
<button id="button2">button2</button>
<script>
[code lang=javascript]
function Konstruktor () {}
Konstruktor.prototype = {
eigenschaft : "Eigenschaftswert",
start : function () {
// Funktioniert:
alert("start wurde aufgerufen\n" +
"this.eigenschaft: " + this.eigenschaft);
setTimeout(this.verzögert, 100);
document.getElementById("button2").onclick = this.handler;
},
verzögert : function () {
// Fehler: this verweist auf window
alert("verzögert wurde aufgerufen\n" +
"this.eigenschaft: " + this.eigenschaft);
},
handler : function (e) {
// Fehler: this verweist auf das Element, dem der Event-Handler anhängt
alert("handler wurde aufgerufen\n" +
"this.eigenschaft: " + this.eigenschaft);
}
};
var instanz = new Konstruktor();
instanz.start();
</script>
[/code]
Und auch zwei Alerts "start wurde aufgerufen ...". Komisch.
Gruß
jobo