Siri: Aufbau von Funktionen/Objekten. Verständnisfrage

Beitrag lesen

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