hallo again Christian,
... Du haettest ruhig im alten thread weitermachen koennen.
gewoehnlich werden die von einem OP zur sprache gebrachten
probleme von den antwort gebenden solange verfolgt und/oder
betreut, bis der OP und/oder der antwortende schlauer ist -
so wie ich jetzt auch in Deinem fall:
ich möchte mehreren Objekten, die alle verschieden sind,
die gleiche Grundfunktionalität zuweisen.
Dazu habe ich einen Basiskonstruktor geschrieben, der die
Grundfunktionalität beinhaltet:
function Base() {
...
}
>
> Meine Objekte würde ich sehr gerne über ein Literal erzeugen,
> da jedes meiner Objekte nur einmal existiert und alle
> unterschiedlich sind! Ich brauche also keinen Konstruktor dafür.
> ...
> Wie bekomme ich an diese Objekte nun die Methoden der Base
> Klasse dran (set und reset) ??
>
> Ich weiß dass ich es auf dem umständlichen Wege über einen
> Konstruktor und prototype vererben kann:
>
> ~~~javascript
function Obj1Konstruktor()
> {
> this.a = 1;
> }
> Obj1Konstruktor.prototype = new Base();
> var obj1 = new Obj1Konstruktor();
Aber genau das möchte ich umgehen, da ich nicht noch jedes mal
einen Konstruktor schreiben will ... Habe schon verschiedenes
probiert wie:
var obj1 = {prototype:new Base(), a:1};
aber ging bisher alles nicht.
aehm ja, tut mir leid, dass ich Dich da am freitag auf den
holzweg gefuehrt habe - ich war wohl nicht mehr ganz frisch.
jetzt, wo ich Dein bsp. sehe, faellt es mir wie schuppen von
den augen - so kann das auch nicht funktionieren, weil:
a) die prototypische vererbung, wie sie auch fuer Deine
beispielhaft vorgegebenen methoden in frage kaeme, nur
ueber den prototypen des jeweiligen objekt-konstruktors
erfolgen kann - der konstruktor ist in Deinem fall immer
b) [[Object]], denn objektliterale sind nun mal [Object]-
objekte. und hier liegt der hase auch im pfeffer:
c) [Object.prototype] laesst sich nicht ueberschreiben und
ist und bleibt damit immer die atomare struktur {} - also
selbst ein leeres [Object]-objekt.
hiermit revidiere ich meine am freitag gemachten aussagen.
vererbung, so wie Du sie moechtest, ist fuer objektliterale
unerreichbar.
das fuers erste ... ich meld' mich gleich nochmal zurueck
bis dann - peterS. - pseliger@gmx.net
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]