molily: Objekte (Literale) erben lassen

Beitrag lesen

Hallo,

prototype-Eigenschaften haben nur Konstruktorfunktionen. Der Konstruktor eines Object-Objektes ist ... Trommelwirbel ... »Object«. Also könntest du schreiben:

Object.prototype.set = function () {};

Das macht das, was du willst, ABER: Das hat SEHR radikale Nebenwirkungen. Weil von Object *alle* Objekte in JavaScript abstammen und du damit *allen* Objekten eine set-Methode gibst. Und diese ist »enumerable«, das heißt, sie kommt dir ständig in die Quere, wenn du irgendwo etwa for (var i in objekt) verwendest.

Das ist ein extrem schwieriges, viel diskutiertes Feld, Fazit ist eigentlich immer noch Object.prototype is verboten.

var obj1 = {a:1};

Musst du halt
var obj1 = new Base({a:1});
schreiben und im Konstruktor alle Eigenschaften des Object-Parameters nach this kopieren.

Aber genau das möchte ich umgehen, da ich nicht noch jedes mal einen Konstruktor schreiben will (und mir immer noch neue Konstruktornamen ausdenken möchte).

Konstruktoren machen ja auch nur Sinn, wenn du mehrere Objekte davon ableiten willst. (Ok, es gibt auch Singleton-Gedöhns, das mal außen vor.)

ich möchte mehreren Objekten, die alle verschieden sind, die gleiche Grundfunktionalität zuweisen. (... vs. ...)
Wie gesagt, ich brauche immer nur EINE Instanz.

Du sagst ja selbst, dass sich alle manche Methoden/Eigenschaften teilen und andere nicht - das Szenario ist doch prädestiniert für klassisches JavaScript-OOP mit Konstruktoren.

Mathias