Ich bin der Meinung, das jeder Befehl in JS mit einem ";" abgeschlossen werden muß, das ist hier aber nicht der Fall.
JavaScript (ECMAScript) hat eine automatische Semikolon-Einfügung, die es an gewissen Stellen nicht erforderlich macht, Semikola einzufügen, weil sie der Interpreter selbst welche einfügt, wenn die Syntax sonst fehlerhaft werden würde.
Von diesem Feature, das man vor allem als Fehlertoleranz betrachten sollte, sollte man aber nicht absichtlich Gebrauch machen, weil es an vielen Stellen uneindeutigen und fehleranfälligen Code erzeugt.
Aber noch etwas zu deinem Codebeispiel. Ein Objekt samt mehrerer Eigenschaften kann man auch viel einfacher mit einem Objekt-Literal notieren:
var configFarben = {
Rot : 'red',
Gelb : 'yellow',
Gruen : 'green',
Blau : 'blue'
};
Das ist gleichwertig zur Schreibweise var configFarben = new Object(); und dem anschließenden Anhängen dieser Eigenschaften.
Auch was das mit dem "[ObjektName]. [Name]" aufsicht hat, ist mir schleierhaft.
Das ist nicht anderes als der Zugriff auf eine Objekteigenschaft. Da wird erst ein generisches Object-Objekt erzeugt und danach werden ohm Eigenschaften angehängt.
Wahrscheinlich kennst du nur die Schreibweise »objekt.eigenschaft« oder nutzt sie zumindest selbstverständlich. Nun, »objekt.eigenschaft« ist ein JavaScript-Ausdruck bestehend aus einem Operator und zwei Operanden. Der Operator ist der ».«, das ist der sogenannte Property Accessor Operator (Operator zum Zugriff auf Objekteigenschaften). Die Operanden sind beide Bezeichner (»objekt« und »eigenschaft«).
Der Witz ist nun, dass zwischen Operand und Operator üblicherweise beliebig viel Whitespace (Leerzeichen, Tabulatoren usw.) stehen darf. Ob man also objekt.eigenschaft oder objekt . eigenschaft schreibt, kommt auf dasselbe heraus. Aus demselben Grund sind 1<2 und 1 < 2 sowie 1+2 und 1 + 2 äquivalent.
Mathias