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

Beitrag lesen

Hallo,

bzw. in dem neueren Text
Organisation von JavaScripten: Objektverfügbarkeit und this-Kontext

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.

  
<button id="button">button</button>  
<script>  
[code lang=javascript]  
var Modul = {  
    eigenschaft : "Eigenschaftswert",  
    start : function () {  
        // Funktioniert:  
        alert("start wurde aufgerufen\n" +  
            "this.eigenschaft: " + this.eigenschaft);  
        setTimeout(this.verzögert, 100);  
        document.getElementById("button").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);  
    },  
};  
Modul.start();  

</script>

[/code]

Gruß

jobo