Objekte mit JavaScript
Gelesen bei AboutWebDesign.de
URL: http://www.aboutwebdesign.de/awd/content/1006878906.shtml
JavaScript ist eine objektorientierte Programmiersprache. Doch wie kann man in JavaScript eigentlich eigene Objektklassen definieren?
Klassen definieren
Der folgende Code zeigt die Erzeugung einer Klasse und die Instanzierung eines Objekts basierend auf der erstellten Klasse:
var instanz_objekt = new meinObject(14);
document.write(instanz_objekt.Eigenschaft);
function meinObject (variable1)
{
this.Eigenschaft = variable1;
}
Wie Sie sehen, reicht also der Aufruf einer einfachen Funktion, verbunden mit dem Schlüsselwort new, um ein Objekt zu erzeugen. Die Funktion enthält dabei die Klassendefinition.
Eigenschaften mit this
Um die Klasse konkret festzulegen, verwenden Sie innerhalb des Konstruktors (so nennt man die Funktion, die für die Konstruktion des Objekts zuständig ist - in diesem Fall ist es meinObject) das Objekt this. Wenn Sie also wie im Beispiel this.Eigenschaft = variable1; schreiben, wird dabei die Objekteigenschaft Eigenschaft erzeugt.
Methoden
Methoden sind Funktionen, die zu einem Objekt gehören. Folgender Code zeigt ein Beispiel:
var instanz_objekt = new meinObject();
document.write(instanz_objekt.funk(12));
function meinObject ()
{
this.funk = doIt;
}
function doIt (zahl)
{
return "Zahl: "+zahl*2;
}
Wieder wird also this verwendet, um eine Funktion zu definieren. Dabei gilt das Schema this.NameDerMethode = EntsprechendeFunktion.
Methoden, die Eigenschaften verändern
Wenn Sie innerhalb einer Methode eine Eigenschaft ändern wollen, geht das so wie in der Funktion setEigenschaft gezeigt:
var instanz_objekt = new meinObject(14);
document.write(instanz_objekt.Eigenschaft);
document.write("
");
instanz_objekt.setEigenschaft();
document.write(instanz_objekt.Eigenschaft);
function meinObject (variable1)
{
this.Eigenschaft = variable1;
this.setEigenschaft = setEigenschaft;
}
function setEigenschaft ()
{
this.Eigenschaft = 12;
}
Datenkapselung
Es ist in JavaScript nicht möglich, Daten wirklich zu kapseln, also den Zugriff von außen zu verhindern. Es ist aber trotzdem guter Stil, Zugriffe auf Eigenschaften über Funktionen abzuwickeln. Wir haben das letzte Beispiel etwas erweitert, um das zu demonstrieren:
var instanz_objekt = new meinObject(14);
document.write(instanz_objekt.getEigenschaft());
document.write("
");
instanz_objekt.setEigenschaft(12);
document.write(instanz_objekt.getEigenschaft());
function meinObject (variable1)
{
this.Eigenschaft = variable1;
this.setEigenschaft = setEigenschaft;
this.getEigenschaft = getEigenschaft;
}
function setEigenschaft (value)
{
this.Eigenschaft = value;
}
function getEigenschaft ()
{
return this.Eigenschaft;
}
Fazit
Objektorientiert mit JavaScript - ganz einfach, wie Sie sehen! Machen Sie Gebrauch von den objektorientierten Möglichkeiten dieser Sprache - in manchen Situationen lohnt es sich wirklich.