Statische Funktionen in Javascript

BlubBlub

Mitglied
Hi ich wollte eine Klassenfunktion aufrufen. Leider hab ich keine Ahnung, ob das in
Javascript möglich ist und wie man das programmiert.
Aber eigentlich müßte es ja möglich sein, denn man kann ja in JavaScript auch folgenden aufruf machen Math.sqrt(). Somit muss man nicht zunächst ein Math Objekt erzeugen, sondern kann einfach auf die Klassenfunktionen zugreifen.

Code:
function MeinObjekt()
{
       this.methode1 = funktion1;
       this.statischeFunktion ****?
}

function funktion1()
{
      alert("hello");
}


var test = new MeinObjekt();
test.methode1();

MeinObjekt.statischeFunktion();
 
Es ist wirklich sehr trivial:

Javascript:
function MeinObjekt()
{
    this.methode1 = function() {
        //...
    };
    
    MeinObjekt.statischeFunktion = function() {
        //...
    };
}


var test = new MeinObjekt();
test.methode1();

MeinObjekt.statischeFunktion();
 
Gestern ist mir wie aus dem Nichts aufgefallen, dass ich dir Blödsinn erzählt habe. Wenn du es so schreibst, wie ich es hier gezeigt habe, existiert die statische Funktion erst, wenn mindestens einmal die Konstruktor-Funktion aufgerufen wurde und außerdem wird Sie jedes Mal neu erzeugt.
Also schreib die Deklaration außen hin.

Javascript:
function MeinObjekt()
{
    this.methode1 = function() {
        //...
    };
}

MeinObjekt.statischeFunktion = function() {
    //...
};

//Hätte vorher an dieser Stelle nicht funktioniert!
MeinObjekt.statischeFunktion();
 
var test = new MeinObjekt();
test.methode1();
 
MeinObjekt.statischeFunktion();
 
Zurück