molily: Positionen in einem Array

Beitrag lesen

Hallo,

Falls es eine dumme Frage ist tut es mir leid aber scheinbar nutze ich Google und Suchfunktion falsch, ich finde keine Antwort darauf.

Kein Problem, frag ruhig. Nicht alles lässt sich so einfach ergoogeln.

Wieso steht die function in einer Klammer und trägt keinen Namen?

Du meinst wahrscheinlich den Code, der den restlichen umschließt:

(function() {  
  // Hier der ganze Code  
})();

Das ist eine sogenannte Immediately-invoked Function Expression (IIFE), auf Deutsch ein sofort aufgerufener Funktionsausdruck. Das ist eine anonyme Funktion, die eben sofort ausgeführt wird und nirgends gespeichert wird.

Diese Technik nutzt man, um schnell und einfach einen Variablen-Gültigkeitsbereich (Scope) zu erzeugen. Innerhalb der Funktion kann man nach Lust und Laune lokale Variablen erstellen, ohne dass der globale Scope (das globale window-Objekt) in Mitleidenschaft gezogen wird.

(function() {  
  var variable = "wert"; // Lokale Variable, nicht von außen sichtbar!  
  var func = function() {}; // Dito  
})();

Wenn der Code nicht derartig umschlossen wäre, dann wären die beiden Variablen global – und könnten somit schnell mit anderen gleichnamigen in Konflikt kommen.

Außerdem kann man eine solche IIFE nutzen, um den Strict-Modus von JavaScript anzuschalten. Das ist eigentlich immer eine gute Idee, da es einem hilft, Fehler zu vermeiden.

(function() {  
  'use strict';  
  // Der restliche Code  
})();

Ich hoffe, das hat etwas Aufklärung gebracht.

Hintergrundlektüre:
Organisation von JavaScripten: Module und Kapselung

Viele Grüße
Mathias