jobo: this und that - closures, Funktionen und Objekte (Crockford)

Beitrag lesen

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