molily: Aufbau von Funktionen/Objekten. Verständnisfrage

Beitrag lesen

Wenn man einen hinkenden Vergleich zu Java ziehen möchte. Wenn ich also die Methoden einer Klasse statisch aufrufe, ohne vorher ein Objekt erzeugt zu haben.

Dieses Wort verwendet man in diesem Zusammenhang in JavaScript nicht. Es handelt sich um einfache Objekte mit Funktionen als Eigenschaften. Der Vergleich zu Klassen mit statischen Methoden passt da vorne und hinten nicht. Es *wird* ja ein Objekt erzeugt und eine Funktion daran gehängt.

Das Konzept wäre eher auf einfache Objekt-Literale anwendbar:

var Foo = {  
  func: function () {}  
};

In meiner Einführung vergleiche ich das aber eher mit Singletons, weil das Objekt einen Status haben kann.

Wenn man in JS von statischen Eigenschaften spricht, meint man meist Eigenschaften des Konstruktors selbst. Der ist ja auch nur ein Funktionsobjekt, das Eigenschaften haben kann.

function Konstruktor () {}  
Konstruktor.statischeEigenschaft = 'foo';

Aber das ist terminologisch nicht so sauber. In JS gibt es einfach Objekte, und Funktionen sind Objekte erster Klasse. Was da eher herausfällt ist das Aufrufen von Funktionen mittels »new«.

Mathias