Aus dem Kurs: JavaScript Grundkurs 1: Grundlagen und Syntax

Der gemeinsame Namensraum

Wenn Sie mit JavaScript programmieren, müssen Sie sich Gedanken um den sogenannten Namensraum machen, wobei das bei JavaScript ein etwas zweischneidiges Schwert ist. Auf der einen Seite soll JavaScript erst in zukünftigen Versionen ein sogenanntes Namens- raumkonzept bekommen. Auf der anderen Seite gibt es so was wie Namensräume und vor allen Dingen in JavaScript gibt es nur einen Namensraum. Das klingt jetzt sehr abstrakt. Ich möchte es erst einmal mit einem Beispiel verdeutlichen. Ich habe hier eine HTML-Datei, in der zwei JavaScript-Dateien eingebunden sind. Und in der ersten lege ich eine sogenannte Variable an, in der zweiten benutze ich aber diese Variable. Und Sie sehen, das funktioniert einwandfrei. Ich habe den Wert der Variable in der Konsole ausgegeben, wobei die Variable in der einen Datei deklariert und in der anderen Datei benutzt wird. Es ist so, dass JavaScript mit nur einem einzigen Namensraum, einem globalen Namensraum arbeitet und kein differenziertes Namensraumkonzept hat, wie es beispielsweise in Java der Fall ist. Bevor ich den Begriff des Namensraums etwas genauer erläutere, möchte ich nochmal in eine andere größere Webseite aus der Praxis schauen, in diese beispielsweise. Und Sie sehen, es gibt hier eine ganze Menge an Skripten, eins, zwei, drei, vier, fünf, sechs, sieben, acht und so weiter und so weiter. Sie sehen, es sind sehr, sehr viele. Und das Konzept, nur einen globalen Namensraum zu haben, bedeutet, dass sogenannte Deklarationen, also die Einführung von Elementen, die in einer weit oben notierten JavaScript-Datei stehen, in den tieferen zur Verfügung steht. Das wiederum kann allerdings zu Konflikten führen, wenn man in später notierten JavaScript-Dateien Änderungen vornimmt. Eventuell kann man ja eine Variable neu deklarieren wollen, und dann ist die alte nämlich weg. Das muss man in der gesamten Programmierung von JavaScript extrem berücksichtigen. Und es gibt Strategien, wie man dieses Konzept zum Vorteil nutzt, aber erst einmal ist es sogar eher eine Gefahr. Doch noch einmal zurück zur eigentlichen Erklärung, was der Namensraum ist. Das ist ganz einfach. Stellen Sie sich mal vor, Sie sind im Kindergarten und haben einen dieser aktuell sehr populären Namen. Früher war es, was weiß ich, Peter, Hans, heute ist es Kevin oder Justin oder was gerade sehr angesagt ist. Und die Kindergärtnerin ruft diesen Namen, dann stehen möglicherweise vier Jungs auf. Wie können Sie sicherstellen, dass nur einer der Jungs aufsteht? Sie wählen den Nachnamen dazu, und das ist der Namensraum, weil ein Namensraum eigentlich nur ein Bereich ist, wo ein Bezeichner eindeutig ist. Und man kann davon ausgehen, dass innerhalb einer Familie jedes Kind einen unterschiedlichen Namen hat oder jede Person. Dementsprechend wäre der Nachname der Namensraum. Genauso ist das mit Verzeichnissen. Verzeichnisse gestatten nur einen eindeutigen Dateinamen. Der Dateiname muss innerhalb eines Verzeichnisses eindeutig sein, er kann in einem anderen Verzeichnis aber nochmal auftauchen, d.h. also, auch Verzeichnisse sind streng genommen nichts anderes als Namensräume. Und bei JavaScript eben wird alles in einem globalen Namensraum gespeichert und steht damit in allen folgenden JavaScripten zur Verfügung. Um den Begriff einfach mal in den Raum zu stellen, man spricht hier auch von einem sogenannten globalen Objekt.

Inhalt