Hallo,
ich hab Molilys überaus interessante "Einführung in JavaScript" gelesen und mich damit auseinander gesetzt. Alles habe ich aber auch nach mehrmaligem lesen nicht verstanden.
Variante A:
function Konstruktor1 () {
//privat
k1var1 = "test1";
// öffentlich
this.k1var2 = "test2";
//privat
k1methode1 = function() {
alert (k1var1+"-"+this.k1var2);
}
//öffentlich
this.k1methode2 = function() {
alert (k1var1+"-"+this.k1var2);
}
}
var instanz1 = new Konstuktor1();
instanz1.k1methode2(); // geht
instanz1.k1methode1(); // geht nicht
Variante B:
function Konstruktor2 () {
//privat
var k2var1 = "test3";
// öffentlich
k2var2 = "test4";
//privat
function k2methode1() {
alert (k2var1);
}
//öffentlich
return {
k2methode2: function() {
alert (k2var1);
}
}
}
var instanz2 = new Konstuktor2();
instanz2.k2methode2(); // geht
instanz2.k2methode1(); // geht nicht
Beide Schreibweisen erlauben die Deklaration von privaten und öffentlichen Variablen/Methoden. Wo liegt der Unterschied? Ist es eine Frage des persönlichen Stils? Oder gibt es bestimmte Einsatzzwecke für die eine der Varianten besser geeignet ist als die andere?
Grüße
Siri