Leser: 1
![]() |
|< 1 2 3 4 >| | ![]() |
40 Einträge, 4 Seiten |
Struppi+2008-03-26 09:40:36--KurtZ+2008-03-25 21:10:26--
Deine erste Erläuterung verstehe ich nicht. Da es keine Klassen gibt, gibt es auch kein Klassenobjekt, jede Funktion ist erstmal per se ein Konstruktor ...
Struppi+2008-03-26 09:40:36--Im zweiten Fall könnte man sich noch behelfen in dem man schreibt:
Code: (dl )var Unterinstanz=new Instanz.constructor();
Struppi+2008-03-26 09:40:36--Das sehe ich anders, Vererbung ist mit JS umständlich, einmal hast du keinen direkten Zugriff auf SUPER und zum zweiten wird durch new BasisKlasse() immer eine Instanz der Basis Klasse erzeugt, was zur Folge hat, das der Konstruktor aufgerufen wird und du dort aufpassen musst, wenn du eine für jede Instanz unterschiedliche Initialisierung machen willst, das geht in die Hose. Du musst entweder die Intialisierung in eine Funktion verlagern oder den Weg, den dir Don P im selfhtml Forum gezeigt hat wählen.
Struppi+2008-03-27 11:54:16--nur daß er Object.prototype unberührt läßt, was auch ratsam ist, da du ansonsten Probleme bekommst, wenn du über for(x in y) auf die Eigenschaften von irgendwelchen Objekten zugreifen möchtest.
1
2
3
4
5
Object.prototype.begetObject = function () {
function F() {}
F.prototype = this;
return new F();
};
Struppi+2008-03-27 11:54:16--Jetzt sind wir soweit wie im selfhtml Thread. Diese Funktion entspricht der Funktion die Douglas Crockford hier beschreibt http://javascript.crockford.com/prototypal.html,
KurtZ+2008-03-27 15:19:24--Z.B. es gibt kein "class" Kommando, und die Klassen kann auch ich auch zur Laufzeit manipulieren. Private Methoden und Variablen muss ich ähnlich zu JS mit My und Closures simulieren.
[...]
var clone = new Object(original);
![]() |
|< 1 2 3 4 >| | ![]() |
40 Einträge, 4 Seiten |