Dokumentation zu prototype?

Status
Nicht offen für weitere Antworten.

JavaUncle

Mitglied
Hallo Leute

ich werde noch bekloppt. Google ist bei der Suche nach "prototype", das Ding womit man JavaScript-Methoden und Objekte eigenen Bedürfnissen anpassen kann, ziemlich nutzlos. Denn leider war der Entwickler der weltberühmten "prototype.js"-Library so schlau und benannte sie nach eben dieser genialen JavaScript-Funktionalität. So findet man nun kaum etwas darüber, da alle Treffer die prototype.js Library meinen!

Es scheint etwas äußerst exotisches zu sein, da kaum einer der Leute die ich kenne und die mit JavaScript arbeiten, jemals von "prototype" gehört haben. Die meisten denken da auch sofort an diese Bibliothek. Niente...ich suche Informationen zum "richtigen" prototype von JavaScript.

Ist hier jemand der zufällig weis was ich meine und - noch zufälliger - einen Link parat hat, wo es mehr Informationen zum Thema prototype in JavaScript gibt Wäre sehr hilfreich!

Danke

JavaUncle
 
Wenn dann such mal nach Object.prototype , Prototypen Kette. Das mit dem Prototype Framework ging mir damals auch gehörig auf den Sa**.

http://mckoss.com/jscript/object.htm
http://www.fbi.h-da.de/~a.schuette/Vorlesungen/JavaScript/Objektorientierung.htm
http://www.javascriptkata.com/2007/05/22/how-to-inherit-classes-in-javascript/

Wenn Du noch dazu JavaScript Inheritance (Vererbung) eingibst kommst auch nützliches über prototype raus.

Na dann viel Erfolg ;)

edit

Kahmoon hat gesagt.:
Öhm was braucht man mehr Doku als http://www.prototypejs.org/api?

Treffer 1 bei Google "Prototype"

genau das ist ja das was er nicht will , da alles in JavaScript ein Objekt ist und alles von der Superklasse Object erbt , hat jedes Objekt in javascript auch die Eigenschaft prototype welches von Object weiter gegeben wird.

Das Prototype Framework hat nur nen oberdämlichen Namen wenn man nach dem eigentlichen prototype sucht.
 
Danke für die Links!!

Wenn ich das hier richtig verstehe:

In JavaScript, each Object can inherit properties from another object, called it's prototype. When evaluating an expression to retrieve a property, JavaScript first looks to see if the property is defined directly in the object. If it is not, it then looks at the object's prototype to see if the property is defined there. This continues up the prototype chain until reaching the root prototype. Each object is associated with a prototype which comes from the constructor function from which it is created.
(http://mckoss.com/jscript/object.htm)

dann bedeutet dass, das man mit prototype nicht wirklich "handfeste eigenschaften" von Objekten in JavaScript umschreiben kann, denn sie sind ja vorhanden und demnach wird das in prototype definierte nie aufgerufen.

Mein Problem ist, das ich die Rückgabe des Zugriffs auf die TOP-eigenschaft also z.b. top.document.machDiesUndDas() ändern muss. top darf nicht auf das echte oberste Dokument zeigen sondern soll auf ein ganz bestimmtes zeigen. Dies will ich umschreiben. Prototype scheint doch nicht dafür geeignet zu sein, oder irre ich mich?

Zu welchem Objekt gehört "top" überhaupt? Window? Document?

Gruß

JavaUncle
 
Naja mit Prototype kannst du bestehnde Objekte erweitern oder Methoden umschreiben.

Das top selber ist ja eine Eigenschaft document.top zeigt bei einen Frame auf das Eltern Element.

document.prototype.top = irgendwas

könnte klappen , nie probiert.

Code:
var arr = new Array("a","b","c");

Array.prototype.push = function (value) {
    this.splice(0,0,value);
}

arr.push("d");
arr.push("e");

alert(arr);

Aber mal als Beispiel , Array.push überschreiben und die Wirkung umkehren. Die Elemente werden nun immer vorne angehängt und nicht wie vorher hinten.
 
Code:
document.prototype.top
sorgt für eine Fehlermeldung: "document.prototype ist null oder kein objekt". Eigentlich kenne ich es nur so, das top VOR document steht. also top.document.blubb();

Zu welchem großen Ober-Objekt gehört denn das document? Alle funktionierenden prototype-Beispiele arbeiten immer mit so einem super-Objekt wie String, Array, Object ... also immer vorne was großes. Mit Object kam ich aber nicht weit, auch wenns zumindest keine Fehlermeldung wirft. Der Aufruf top.document.irgendwas() bewirkt da nichts...

Gruß

JavaUncle
 
Ich hab eben auch nochmal nachgeschaut , document ist ein Unterobject von window.

Scheint also wohl 2 Zweige zu geben

Object (ganz oben) -> Array , Date etc

Window (ganz oben) -> document , frame etc ( alles was mit dem Browser Fenster zu tun hat)

Zweiteres ist ein DOM Object und kann man wohl nicht mittels Prototype beeinflussen.

Wobei ich da langsam auch durcheinander komme man bräuchte mal so ein Baum wo man sich das ansehen kann ;)

Code:
alert(window.constructor); // gibt [Window] aus 
alert(Object.constructor); // gibt function native code aus

http://www.w3schools.com/htmldom/dom_obj_window.asp

Edit:

Also ich hab mir eben nochmal die API von FF zu Gemüte gezogen.

Object (ganz oben) -> Function (erbt von Object) -> Array (erbt von Function) zum Beispiel

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Object:prototype

Date , Array , Function , Boolean sind globale Objekte welche von Function.prototype erben und Function.prototype erbt von Objekt.

Window ist ne ganz andere Schiene also da kannst nicht einfach mal eben die Eigenschaften ändern.
 
Zuletzt bearbeitet:
http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/reference/window.html#1203975 hat gesagt.:
top
The top property is a synonym for the topmost browser window, which is a document window or web browser window.

Property of window

Read-only

Implemented in JavaScript 1.0

Du kannst diese Eigenschaft also nicht ändern.

Infos zum echten prototype findest du ....in der echten Javascript-Referenz :eek:
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück