Hauptmenü

Untermenü

OOP mit JavaScript - Konstruktorfunktionen - Methoden

1. Tohuwabohu

Im Gegensatz zu anderen Sprachen bietet uns JavaScript eine Fülle von verschiedenen Methoden, die man in einer Konstruktorfunktion einsetzen kann. Genauer gesagt sind es deren fünf. Als da wären folgende.

2. Methoden in Objektliteralen

Dazu sage ich jetzt nichts mehr. Das Prinzip ist dasselbe wie bei Eigenschaften aus dem vorherigen Abschnitt.

3. Privilegierte öffentliche Methoden

Sie werden genau so deklariert wie die öffentlichen Eigenschaften, also mit dem this davor. Auf sie kann auch ein Objekt zugreifen, das aus der Konstruktorfunktion erzeugt worden ist. Es gibt auch noch "normale" öffentliche Methoden, aber das erfahrt ihr beim Thema Prototypen.


function Konstruktor()
{
  this.methode = function()
  {
    ...
  }
}

4. "Private" Methoden

Sie werden wie ganz normale Funktionen erzeugt.


function Konstruktor()
{
  function methode()
  {
    ...
  }
}

5. "Globale" Methoden

Auch wenn viele Leute sagen, dass es den Ausdruck in diesem Zusammenhang garnicht gibt, so verwende ich ihn trotzdem. Dabei dreht man die Notation der privaten Methode einfach um. Auf was ihr hier aber unbedingt achten müsst, zeige ich euch gleich unter dem Abschnitt Besonderheiten.


function Konstruktor()
{
  methode = function()
  {
    ...
  }
}

6. "Variablenfunktion"

Ehrlich gesagt habe ich keine Ahnung, wie das wirklich heißt. Aber ich bin im Moment zu faul, nach der richtigen Bezeichnung zu suchen. Zumal ich mich dann wieder durch zigtausend Seiten im Internet wühlen muss, um die Spreu vom Weizen zu trennen. Egal, hier wird einfach eine "globale" Methode genommen und ein var vorangestellt.


function Konstruktor()
{
  var methode = function()
  {
    ...
  }
}

Ein Hinweis

Bei dieser "Funktion/Methode" wird soweit ich das verstanden habe, die Referenz einer anonymen Funktion/Methode in einer Variable abgespeichert. Wenn ich mich irre, so sagt mir einfach Bescheid.

Feinheiten

Normalerweise werden Funktionen/Methoden sofort vom Parser erfasst, auch wenn der Aufruf vorher stattfindet.


// ergibt "function"
alert (typeof bla);
function bla() { }

Bei einer "Variablenfunktion" kann dies allerdings immer erst dann geschehen, wenn sie vorher(!) "initialisiert" wurde.


// ergibt "undefined
alert (typeof bla);
var bla = function() { }
// ergibt „function"
alert (typeof bla);


zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt