so, jetzt mein letztes Posting, dann geb ich's auf -_-
eine Funktion, die über prototype definiert wurde ist in jeder Instanz des zugehörigen Objekts als _Referenz_ vorhanden.
genau diese Referenzen können aber sehr wohl zur Laufzeit überschrieben werden bzw die Referenz zeigt dann halt auf ein neues Objekt - für ALLE Instanzen!
wenn also das Objekt so definiert ist:
function Obj()
{
Obj.prototype.func = function () {};
}
dann wird mit jeder Instanz dieses Objekts auch ein neues Objekt für die prototype-Funktion angelegt. Die Referenz auf die Funktion wird allerdings für alle Instanzen geändert - die erste erstellte Funktion per prototype landet also irgendwo im Speichernirvana.
Da Du mir ja leider partou nicht glauben willst, hab ich hier jetzt nochmal was für Dich, was beweist, dass ich Recht habe:
function Obj()
{
Obj.prototype.func = function () { };
this.funktion = this.func;
}
a = new Obj();
alert(a.func === a.funktion); //ergibt true
b = new Obj();
alert(a.func === a.funktion); //ergibt false
alert(b.func === a.func); //ergibt true
Grüße
Bezkeroon
P.S.: Einen richtigen "Übersetzungprozess" gibt es im übrigen im JavaScript nicht wirklich, aber das nur nebenbei :P