molily: Script-Reorganisation

Beitrag lesen

Hallo,

Diese Pseudo-Objektorientierung verstehe ich nicht ganz, du rufst Funktionen als Konstruktoren auf, dabei werden sie sowieso nur einmal aufgerufen und der Rückgabewert ist eine globale Variable - das ist nicht sonderlich strukturiert.

Ich würde mir eine Abstraktion so vorstellen:

Es gibt ein Quiz-Konstruktor, der instantiiert wird. Das Quiz initialisiert sich dann über eine oder mehrere private Funktionen, die im Konstruktor aufgerufen werden. Das sind sinnigerweise initVars und initDOM, ferner addFormElements, addMyEvents, applyCookieSettings und letztlich Einblenden. Ob du die nötigen Operationen weiterhin so verteilst, lasse ich mal außen vor.

Die ganzen Variablen des Quizzes kannst du auch hierarchisch ordnen, indem du Objects verwendest:
this.zusammengehörigeVariablen = {
   variable : "wert",
   variable : "wert",
   ...
}
Zum Beispiel bei den Elementobjekten, sodass ein Zugriff über this.DOM.element möglich ist.

Mir scheinen das krass viele Variablen zu sein. (Ich habe natürlich keine Einsicht in die Komplexität des Scriptes, das ist nur ein Gefühl.) Die lassen sich bestimmt weiter auslagern, sodass sie nicht alle ungeordnete öffentliche Eigenschaften des Quiz-Objektes wären.

Und wenn ich dutzende Zeilen sehe, die alle nach diesem Muster aufgebaut sind:
this.bezeichner = document.getElementById("id");
Ansonsten scheint mir der geplante Aufbau des Quiz-Objektes ganz sinnvoll.

Letztlich brauchst du dann nur eine globale Variable, nämlich die Quiz-Instanz (die ja auch nicht wirklich global sein muss).

Mathias