eine Funktion, die über prototype definiert wurde ist in jeder Instanz des zugehörigen Objekts als _Referenz_ vorhanden.
Ja, wird aber nicht jedesmal neu angelegt, wie dein erstes Posting suggeriert.
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!
Hab ich nie bestritten, und dass es für alle Instanzen gilt, ist das was ich die ganze Zeit sage.
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.
Die ist an das Objekt gebunden, d.h. alle Objekte greifen auf diese Funktion zu. Intern wird das in etwa so umgesetzt, dass die Funktion func() mit dem Objekt zu dem es gehört als Parameter aufgerufen wird.
Da Du mir ja leider partou nicht glauben willst, hab ich hier jetzt nochmal was für Dich, was beweist, dass ich Recht habe:
Das Beispiel entspricht dem was ich die ganze Zeit versuche dir zu erklären. Das eine prototype Funktion nur einmal übersetzt wird und danach für alle Objekte zu Verfügung steht. Das also dein Konstrukt relativ überflüssig ist.
P.S.: Einen richtigen "Übersetzungprozess" gibt es im übrigen im JavaScript nicht wirklich, aber das nur nebenbei :P
Keine Ahnung was du unter Richtig verstehst, aber Interpretaion ist eine Übersetzung des Codes.
Struppi.
Javascript ist toll (Perl auch!)