2011-01-10 14 views
20

geht um Modernizr Quellcode ich Merkwürdige gefunden haben:JavaScript-Funktion mit ‚undefined‘ Parameter

window.Modernizr = (function(window,document,undefined) { 

Danach wird diese Funktion mit zwei Argumenten (this, this.document) aufgerufen werden.

Warum wird undefined hier verwendet? Ist es sinnvoll oder ist es nur komisch Code-Stil?

+0

Ich weiß, dass diese Konstruktion im Funktionskontext nicht definiert ist, aber ich kann nicht verstehen, wofür. –

Antwort

23

Erzeugt eine lokale undefined für den Fall, dass jemand irgendwo in der Scope-Kette undefined neu definiert.

Bietet auch eine schnellere Suche, da undefined eine globale Eigenschaft ist, so dass der Umfang der Kettenüberschreitung reduziert wird.

+1

Wow, danke für die schnelle Antwort. Daran denke ich nicht. –

+7

Ja, ich glaube Paul Irish bezeichnet das als den Arschloch-Effekt in den 10 Dingen, die ich über JQuery-Video gelernt habe. – Loktar