Hallo,
OOP heißt für mich erst einmal, dass es Objekte als Gruppierungen von Daten und Funktionalität gibt und diese Objekte einander Nachrichten senden: »Alan Kay coined the phrase Object-Oriented Programming, but this is not his fault. He has repeatedly said that to him, OOP is about encapsulation and message passing, not inheritance and ontologies of types.« (Quelle)
und genau das ist das Problem von JS. Die Kapselung erfolgt nicht so, dass sie für einen OO Ansatz wirklich verwendbar ist.
Das geht nicht:
function MyClass(){
var private;
}MyClass.prototype.myFunction = function() {
alert(private);
};
> >
Was ich hier nicht verstehe ist, warum du denn im Nachhinein einen Prototyp ändern willst. Das wäre ja so, als wenn du eine Klasse änderst, nachdem du eine Instanz erstellt hast.
>
> hatten wir [David Aurelios Artikel](http://uxebu.com/blog/2011/02/23/object-based-inheritance-for-ecmascript-5/) hier auch schon mal verlinkt?
Glaube nicht, hatte die nested Ansicht daraufhin durchforstet. Und auf der Suche nach Ducktyping und Javascript kam noch [dieser Artikel von Nick Fitzgerald über OOP ohne Vererbung raus](http://fitzgeraldnick.com/weblog/39/):
"To conclude, we should recognize that OOP does not need to be an all or nothing proposition. You can take the parts that are beneficial to you (such as message passing, encapsulation, and composition) and leave the parts which you may not require (such as inheritance).
Finally, take everything I say with a grain of salt (as you should with everything you read on the internet)."
Gruß
jobo