Peter: Bugs und Questions.

Beitrag lesen

Der Wert von this ist praktisch immer gleich window und self.

Nein, stimmt nicht, da sich this immer auf das aktuelle Objekt bezieht, was keinesfalls window oder self sein muss.

Dies macht sich besonders bei wirklich objektorientierter Programmierung in JS bemerkbar.

Hallo Ashura und Ingo, jetzt verstehe ich was Ihr meinst. Ich erkläre es am besten mir selber:
Schreibe ich

<script> function eins(){ ...this...} </script>

dann ist this==self==window.

Mache ich stattdessen eine globale Variable zwei und hänge die Funktion als Methode hinein, ist this==zwei

<script>
  var zwei = {
   daten:    "",
   ptr:      null,
   eins:     function(){...this ....}
  }
</script>

Arbeite ich anstatt mit globalen Methoden überhaupt mit Objekten, zB. mit einem constructor menu()
<script>
  var zwei = new menu();
  var drei = new menu();
</script>

dann wird this==zwei oder this==drei, wenn ich eine Routine des entsprechenden Menus, also zwei.eins() oder drei.eins() aufrufe.

Nur im <a> muss ich dann
  onclick="zwei.clicked(this);" href="javascript:zwei.goto();"
oder
  onclick="drei.clicked(this);" href="javascript:drei.goto();"
hinzaubern.

So etwa.
Gruss und schöne Weihnacht (falls östliche)
Peter