Moin,
Danke für Deine Antwort.
Wieso ist das umständlich? Man hat den Vorteil, dass man im Konstruktor wirklich nur die Initialisierung vornehmen kann und Eigenschaften und Methoden ausgelagert über die prototype-Eigenschaft hinzugefügt werden.
Hm, für mich hat das zwei Gründe:
1.) Optisch: Ich habe das im Quellcode gerne gekappselt:
"Klasse" (wenn man das in JavaScript so nenen darf :) )
function meineKlasse ()
{
//Eigenschaften
//Methoden
}
Man sieht dann sofort, dass diese Methoden wirklich zu dieser Klasse gehören, ähnlich wie's in Java o.ä. auch ist.
2.) Logisch
Eine normale Methode gehört in meinen Augen zur Klassendefintion.
Wenn ich etwas schreibe wie:
var meineInstanz = new MeinObjekt();
erwarte ich danach, dass "meineInstanz" alles kann, was "MeinObjekt" können soll.
Wenn ich die Methoden erst danach hinzufüge:
var meineInstanz = new MeinObjekt();
meineInstanz.prototype.methode1 = function () {...}
meineInstanz.prototype.methode2 = function () {...}
ist "meineInstanz" zum Zeitpunkt der Erzeugung noch "nackt".
-> finde ich "unschön" (auch wenns technisch natürlich keinen großen Unterschied macht).
Grüße,
Jörg