JavaScript unterstützt objektorientierte Entwicklung

Interaktion mit globalen Variablen

JavaScript unterstützt außerdem die Anwendung globaler Variablen. Der Geltungsbereich der Variable g_area ist aus dem nachstehenden Ausschnitt ersichtlich:


<HTML>
<SCRIPT>
var g_area = 20;
function Figure() {
…
this.area=g_area;
…
}
function Rectangle(){ … }
Rectangle.prototype = new Figure();
function test(){
g_area = 40;
rect = new Rectangle();
alert(rect.area);
}
</SCRIPT>
<BODY onLoad = 'test()'/>
</BODY>
</HTML>

Der Wert von rect.area ist 20 (nicht 40, wie man vielleicht erwarten würde), da Rectangle ein Prototyp des Objekts Figure ist und diese Beziehung bereits bestand, als test() aufgerufen wurde. Um den neuen Wert von g_area anzuwenden, muss man folgendes tun:


function test() {
g_area = 40;
Rectangle.prototype = new Figure();
rect = new Rectangle();
alert(rect.area);
}

Hierdurch ändert sich der Wert der Eigenschaft area für alle neuen Instanzen von Rectangle. Alternativ kann man auch wie folgt vorgehen:


function test() {
g_area = 40;
rect = new Rectangle();
Rectangle.prototype.area = g_area;
alert(rect.area);
}

Hierdurch ändert sich der Wert der Eigenschaft area für alle bestehenden und neuen Instanzen von Rectangle.

Fazit

JavaScript bietet alle Eigenschaften wie Vererbung, Kapselung und des Außer-Kraft-Setzens, die zum Imitieren einer OO-Entwicklung erforderlich sind, obwohl es weder Schnittstellen noch Methodenüberladung unterstützt. Ist man auf dem Gebiet der OO-Entwicklung noch neu, sollte man es einmal versuchen. OO-Konzepte machen es Entwicklern möglich, eine zusammengehörende Reihe von Daten und Operationen in einem Objekt zu bündeln. Dies ist beim Umgang mit Browser-Events ebenso wie mit SVG-Bildern in einem Browser nützlich.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu JavaScript unterstützt objektorientierte Entwicklung

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *