jQuery - Fast jeder, der etwas mit Javascript oder allgemein mit Webentwicklung zu tun hat, kennt es. Es bietet eine Unmenge an Methoden, die uns allen schon die eine oder andere Zeile Code erspart haben. Ich bin über einen Screencast von nettuts+ gestolpert, in dem Paul Irish, den jQuery Source Code unter die Lupe nimmt. Er stößt dabei auf interessante und hilfreiche Dinge, von denen ich hier Eines vorstellen möchte.

Wenn wir die jQuery-1.4.2.js öffnen, sehen wir gleich in der ersten Zeile folgendes:

[code](function (window, undefined) {

und ganz am Ende der Datei:

[code]})(this);

Eine anonyme, sich selbst aufrufende Methode.
Erstmal nichts Neues, aber mit einem Nebeneffekt:

Die Funktion wird mit dem Parameter this
aufgerufen. Der Scope ist global, also zeigt this auf window. Es wird aber kein Parameter für undefined übergeben. Dadurch bekommt unsere Variable undefined auch den Wert undefined.

Jetzt wird man sich fragen: Und? In Javascript ist es durchaus möglich so etwas zu schreiben:

[code]undefined = true;

Wenn man jetzt eine solche Abfrage im Code hätte:

[code]
if (foo === undefined) {
doStuff();
}

könnte sie eventuell nicht das erwartete Ergebnis liefern.

Wenn also jemand, aus unerfindlichen Gründen vor hat, Javascript auf diese Art und Weise zu manipulieren, ist das die Lösung.

Einen Hinweis noch! Eclipse zeigt bei

[code](function (window, undefined) ….

einen Fehler, es funktioniert aber trotzdem. Übrigens wurde jQuery 1.5 freigegeben.