Hallo,
this.classe_funktion();
this.classe_funktion = function()
{
}
Ein Programm wird von oben nach unten Anweisung für Anweisung abgearbeitet. Das ist nichts anderes als:
alert(a);
var a = "wert";
Die Variable ist natürlich erst verfügbar, nachdem sie gesetzt wurde, deshalb wirft dieser Code einen Fehler.
Es gibt nur eine Ausnahme: Funktionsdeklarationen. Man kann schreiben:
bla();
function bla () {}
Aber man kann nicht schreiben:
bla();
var bla = function () {};
(Obwohl das haargenau denselben Effekt hat!)
Warum? Weil Expression Statements (in dem Fall mit Assigment Expressions) nacheinander ausgeführt werden.
Mathias