Ich bin nicht, dass in dynamische Programmiersprachen, aber ich habe meinen fairen Anteil von JavaScript-Code geschrieben. Ich habe nie wirklich meinen Kopf um diese Prototyp-basierte Programmierung bekommen, weiß jemand, wie das funktioniert?
var obj = new Object();
obj.prototype.test = function() { alert('Hello?'); };
var obj2 = new obj();
obj2.test();
Ich erinnere mich an eine Diskussion, die ich vor einiger Zeit mit Leuten geführt habe (ich bin mir nicht ganz sicher, was ich da tue), aber so wie ich es verstehe, gibt es kein Konzept einer Klasse. Es ist nur ein Objekt, und Instanzen dieser Objekte sind Klone des Originals, richtig?
Aber was ist der genaue Zweck dieser ".prototype"-Eigenschaft in JavaScript? Wie hängt sie mit der Instanziierung von Objekten zusammen?
Update: Richtiger Weg
var obj = new Object(); // not a functional object
obj.prototype.test = function() { alert('Hello?'); }; // this is wrong!
function MyObject() {} // a first class functional object
MyObject.prototype.test = function() { alert('OK'); } // OK
Auch diese Folien wirklich sehr geholfen.