Frontend-Developer, JavaScript, AngularJS


Veröffentlicht:
Über JavaScript | Prototypal Inheritance | Higher-Order-Functions | OOP | Coding Patterns

Wie organisiere ich meinen JavaScript-Code?

Stünde einem beim Programmieren mit JavaScript immer ein Framework zur Verfügung, oder würde sich der Einsatz eines solchen Hilfsmittels immer lohnen, dann ließe sich die im Titel gestellte Frage leicht beantworten. Dies ist aber oft nicht der Fall, da schließlich auch viel Kleinkram mit JavaScript zu programmieren ist.

Also macht es doch Sinn, sich ein paar Fragen zum Thema JavaScript Coding Patterns zu stellen. Zumindest sehe ich mich mit dieser Frage beim täglichen Arbeiten häufig konfrontiert. Und ich habe versucht ein paar Antworten zu bekommen, die ich hier präsentieren werde.

Was sind die Ziele?

Bei der Organisation des JavaScript-Codes sollen drei Dinge im Vordergrund stehen: Übersichtlichkeit, Wiederverwendbarkeit und Datenkapselung. In Sachen Kapselung besteht für JavaScript noch das spezielle Problem, dass alle Variablen, die außerhalb von Funktionen deklariert werden, zum globalen Namensraum gehören. Und das sollte vermieden werden.

Welche Mittel stehen zur Verfügung?

In einer objektorientierten und funktionalen Sprache wie JavaScript, spielen selbstverständlich Objekte, Funktionen und Vererbung die Hauptrolle bei der Strukturierung von Code. Hier gibt es drei Besonderheiten:

  1. Objekte sind in JavaScript keine Instanzen von Klassen (als Baupläne oder Rezepte für Objekte aufgefasst), sondern immer ganz konkrete Objekte. JavaScript ist eine klassenlose Sprache.
  2. Funktionen sind hier ebenfalls Objekte, die Attribute und wiederum Funktionen haben können. Funktionen dürfen auch als Argumente in andere Funktionen hineingereicht werden (Callbacks). Und nur Funktionen stellen lokale Sichtbarkeitsbereiche von Variablen zur Verfügung (Scope).
  3. Vererbung ist in JavaScript durch Objekt-Prototypen realisiert, die als Konstruktionsvorlage für andere Objekte dienen. In JavaScript erben Objekte von Objekten.

Noch mehr Fragen?

Für mich geht es darum in Sachen JavaScript Coding Patterns um drei Fragen:

  1. Wie kann ich mit Objekten meinem Code Struktur geben?
  2. Wie organisiere ich mit Funktionen meinen Quellcode?
  3. Welche Rolle spielt Vererbung bei der Organisation von Code?

Wann gibt es Antworten?

Auf alle Fragen möchte ich hier so bald wie möglich, im Laufe der nächsten Wochen, Antworten geben.

Code Beispiele