2176 Stimmen

Wie funktioniert JavaScript .prototype?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X