Marco: Konstruktor

Hallo

Ist es möglich in Javascript eine Art Konstruktor-Methode zu definieren welche jedes Mal beim erstellen einer Instanz aufgerufen wird (z.B. sollte in der Subklasse jedes Mal init() aufgerufen werden wenn ein Objekt erstellt wird)? Dies wäre praktisch um den Code der beim Erstellen der Instanz aufgerufen wird vom restlichen Code einer Methode zu trennen

  
Namespace.Superklasse = function(variable) {  
   this.variable = variable;  
  
   this.methode = function() {  
      // Irgendetwas  
   }  
}  
  
Namespace.Superklasse.Subklasse = function(variable) {  
   this.variable = variable;  
  
   function init(); // Funktion die automatisch aufgerufen weden sollte  
  
   this.methode = function() {  
      // Irgendetwas  
   }  
  
   this.methode2 = function() {  
     // Irgendetwas  
   }  
}  
Namespace.Superklasse.Subklasse.prototype = new Namespace.Superklasse;  
  
EinObjekt = new Namespace.Superklasse.Subklasse(); // init() sollte jetz auch aufgerufen werden.  

Viele Grüsse
Marco

  1. gruss Marco,

    ... (z.B. sollte in der Subklasse jedes Mal init() aufgerufen
    werden wenn ein Objekt erstellt wird) ...

    dann setz es doch einfach so um, wie Du es gerade beschreibst ...

    ...
    EinObjekt = new Namespace.Superklasse.Subklasse(); // init() sollte jetz auch aufgerufen werden.

    ... z.b. indem Du Deinen [[Subklasse]]-konstruktor vorher auch
       dazu befaehigst, solches zu tun:

    Namespace.Superklasse.Subklasse = function(variable) {
    »»

    this.variable = variable;

    var init = function () {
            // Funktion die automatisch aufgerufen weden sollte
          };

    //...
       // noch mehr code
       //...

    init(); // z.b. so?

    }

      
      
       so long - peterS. - pseliger@gmx.net  
      
      
    
    -- 
    »Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
    Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
      
    ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]
    
    1. Hallo Peter,

      EinObjekt = new Namespace.Superklasse.Subklasse(); // init() sollte jetz auch aufgerufen werden.

      ... z.b. indem Du Deinen [[Subklasse]]-konstruktor vorher auch
         dazu befaehigst, solches zu tun:

      Dein Vorschlag leuchtet mir ein und klappt auch wunderbar. Danke.

      Gruss Marco