Hallo zusammen,
Ich bin vor kurzem auf eine (zugegeben eher theoretische) Frage gestossen, und ich hoffe, der eine oder andere JS-Freak weiss hier eine Antwort.Wenn ich eine "JavaScript-Klasse" (ja ich weiss, im strengen Sinne gibt es das in JS nicht) implementieren möchte, und eine Public-Methode dazu, mache ich das für gewöhnlich so:
function MeineKlasse() {
...
}
MeineKlasse.prototype.publicMethode = function () {...}
var meineInstanz = new MeineKlasse();
usw.
>
> Eine "Private-Methode" baue ich mit Closures:
>
> ~~~javascript
> function MeineKlasse() {
> var privateMethode = function () {...}
> }
>
Soweit so gut. Was mache ich aber, wenn meine Private-Methode von einer Public-Methode aufgerufen werden soll? Dann geht das nach meinem Dafürhalten nur so:
Javascript ist... Müll. Mächtiger Müll, aber Müll. Verabschiede dich von "private" und "public", du musst bei Javascript einfach anders denken und nicht versuchen deine z.B. Java oder C++ Kenntnisse 1:1 zu übertragen.
2.) Wenn das tatsächlich so ist (dass jede Instanz das Funktionsobjekt neu erzeugt), verschwende ich bei vielen Instanzen ja ganz schön Speicher - wie entkomme ich diesem Dilemma?
Und hör auf dir über soetwas den Kopf zu zerbrechen. Was macht das bisschen Speicher schon? Oder entwickelst du ein Framework oder etwas ähnliches, was von vielen Leuten eingesetzt wird?