Mir ist grade ein (ziemlich abstruses) Skript begegnet mit einem Code-Konstrukt das ich mir nicht erklären kann, bzw. mir völlig sinnfrei erscheint.
(function() {// jede menge Code, teils direkt ausführbar
// und Funktionen mit "Namespace" wie z.B.
Thingy.run = function(id) {
if(!Thingy.Init.OK)
return;
if(document.getElementById(id))
new Foo(c+1, document.getElementById(id));
}
// Am Ende werden noch ein paar Event-Listener
// für onload und onresize eingerichtet und dann:
})();
Warum das ganze? Die Funktionen haben ihren eigenen Namespace und "verschmutzen" nicht den globalen. Der einzeln stehende, ausführbare Code muss, soweit ich das auf die schnelle gesehen habe, laufen (initialisiert einige Datenstrukturen usw.). Globale Variablen gibt's keine.
Also warum das alles nochmal in eine anonyme Funktion verpacken? Bringt das irgendwelche Vorteile? Oder fällt das mal wieder in die Rubrik Krüppelbrowser-Fehlerbeseitigung?
Datum: 22.07.2009-00:01
