Tobias R.: Konstruktor in Javascript?

Nabend,

ich hoffe das mir hier jemand weiterhelfen kann. Ich arbeite noch nicht sehr lange mit Javascript. Ich habe eine Klasse geschrieben für die ich eine Methode als Konstruktor brauche. Wie löst man so was in Javascript (ich möchte Browserabhängig eine Variable der Klasse mit einen Wert belegen)? Das Problem liegt bei mir daran das ich nicht weiß wie ich eine Methode aufrufen kann, wenn eine neues Objekt der Klasse erstellt wird.

Gruß

Tobias

  1. Hi,

    ich hoffe das mir hier jemand weiterhelfen kann. Ich arbeite noch nicht sehr lange mit Javascript. Ich habe eine Klasse geschrieben für die ich eine Methode als Konstruktor brauche. Wie löst man so was in Javascript

    indem man im Funktionskörper, der ja nun mal die Klasse darstellt, eine enthaltene Methode aufruft ...

    (ich möchte Browserabhängig eine Variable der Klasse mit einen Wert belegen)?

    ... oder dies halt direkt durchführt.

    Das Problem liegt bei mir daran das ich nicht weiß wie ich eine Methode aufrufen kann, wenn eine neues Objekt der Klasse erstellt wird.

    Der Code, der innerhalb der Funktion steht, wird ausgeführt. Oder anders gesagt: Die Klasse ist ihr eigener Konstruktor.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Danke,

      jetzt wird es mir Klarer.

      Gruß

      Tobias

  2. Hallo,

    Klassen in der bekannten Form gibt es in JavaScript nicht. Es gibt sogenannte Prototypen. Die definiert man nicht formal, sondern sie bilden sich bei der Abarbeitung eines Konstruktors.

    Ein Konstruktor ist eine einfache Funktion, die mit dem new-Schlüsselwort aufgerufen wird. In dieser Funktion zeigt this auf das neu erzeugte Objekt. Dem können dann im Laufe der Abarbeitung der Konstruktorfunktion Methoden und Eigenschaften zugewiesen werden. (Auch außerhalb dieser kann man den Prototyp bearbeiten, dafür hat diese Funktion eine Eigenschaft prototype.)

    Ich habe eine Klasse geschrieben für die ich eine Methode als Konstruktor brauche.

    Du kannst in JavaScript keine »Klasse« (wenn man es so nennen will) schreiben, ohne einen Konstruktor definiert zu haben... ;)

    Wie löst man so was in Javascript (ich möchte Browserabhängig eine Variable der Klasse mit einen Wert belegen)? Das Problem liegt bei mir daran das ich nicht weiß wie ich eine Methode aufrufen kann, wenn eine neues Objekt der Klasse erstellt wird.

    function konstruktor () {  
       this.methode = function () {  
          alert(this.eigenschaft);  
       };  
       this.eigenschaft = "wert";  
    }  
    var obj = new konstruktor();  
    obj.methode();
    

    Mathias