Erwin: Funktionsaufruf

Beitrag lesen

hoppla, hab ein paar Klammern vergessen:

(function() {

// Funktionsinhalt
})();

  
Mit function erzeugst du eine Funktion, genauer: ein Funktionsobjekt. function gibt also ein Objekt zurück. Besser sieht man das in dieser Konstruktion:  
  
var test = function () {  
  blafasel;  
}  
  
Dies ist gleichwertig zu:  
  
function test () {  
  blafasel;  
}  
  
Egal, welche Variante du einsetzt: Es wird ein (Funktions-) Objekt erzeugt und in einer Variablen namens test abgelegt. Dieses Objekt lässt sich, wie bekannt, mit  
  
test();  
  
aufrufen.  
  
Also, wir halten fest: function gibt ein Objekt zurück. Die Klammern um function(){} umfassen dieses Objekt sprachlich, damit …  
  

> und warum kommt da noch ein "();" hinterher?  
  
… es dann in einem Rutsch gleich aufgerufen werden kann.  
  
Du bekommst also Definition und Aufruf in einem Paket, anstatt dieses schreiben zu müssen:  
  
function test() {  // oder var test = function () { - siehe oben  
  blafasel;  
}  
test();  
  
Der Sinn der Übung ist, alles, was in function geschrieben wird, luft- und wasserdicht einzuschließen (Variablen in der Funktion bleiben lokal), ohne den darüber liegenden Namensbereich mit auch nur dem allerkleinsten Variablenfitzel zu belästigen (nicht einmal dem Funktionsnamen).