Hallo,
Ich hab hier noch ein komplexeres Beispiel ;-)
Stöhn... Danke, dass du es nicht gepostet hast ;-)
Ich denke konkret an Objekte um das DOM zu manipulieren und/oder Elemente zu erzeugen bzw. löschen. Da ist ein parent u.U. notwendig, wobei das this hier wohl eher Blödsinn ist.
Interessant, vielleicht sollest du doch mal konkreteres posten. Vielleicht fällt mir sogar was brauchbares dazu ein, könnte auch mir nützen.
Oder, wenn MyBaseObject totzdem mitspielen soll (aber ohne parent), z.B. so:
...
Ja, das sollte existieren, da ich ja mehrere unterschiedliche Objekte davon erben lassen will.
...
Hmm, das ist so nicht gewollt, die Funktion id ist nur ein Beispiel, MyBaseObjekt() soll/kann natürlich mehrere Methoden haben, die vererbt werden sollen
Dann kann man das ganz analog z.B. so machen:
function MyBaseObject(id, c) {
var obj = document.getElementById(id) || {id:id};
obj.itsColor = c;
obj.methode1 = function () {...};
obj.methode2 = function () {...};
obj.eigenschaft1 = obj.id.getElementsByTagName('th');
// usw.
return obj;
}
Eine Notwendigkeit für Vererbung kann ich da noch immer nicht sehen. Man muss ja nicht um jeden Preis vererben. Besser ist zur Laufzeit schenken, kostet weniger Steuern ;-) Mit ein bisschen Vererbung ginge das das z.B. so:
function MyBaseObject(id, c) {
var
obj = document.getElementById(id),
erweiterung = {
itsColor: c,
methode1: function () {return "e1";},
methode2: function () {return "e2";},
eigenschaft1: obj.getElementsByTagName('th')
// usw.
}
;
return oobject(obj,erweiterung);
}
das ist ja der Punkt, mir leuchtet der Sinn von der Funktion object() nicht ein, da ich so einfache Konstrukte nicht habe, wenn ich mit Vererbung arbeite.
Du könntest aber höchstwahrscheinlich deine komplexeren Konstrukte auf einfache herunterbrechen. Z.B. machst du intensiven Gebrauch von Closures. Warum eigentich? Wie wir gesehen haben, braucht man die für diesen Zweck gar nicht. Ich finde, das verkompliziert die Sache nur.
Es kann aber auch durchaus sein, dass ich immer noch nicht 100% hinter OOP steige, da ich nie was mit Java gemacht habe und insofern wenig Ahnung von Klassen und Vererbung habe.
Ich auch nicht wirklich, hehe. Das ist doch eine hervorragende Ausgangsbasis, um den ganzen Ballast von Klassen und Konstruktoren rechts zu überholen und gleich auf dem aktuellen Stand der Technik einzusteigen, jedenfalls in JavaScript. Späteres Umdenken wäre sicher schwerer.
Gruß, Don P
sh:( fo:) ch:? rl:( br:] n4:~ ie:% mo:? va:{ js:) de:/ zu:] fl:( ss:| ls:&