Heim >Web-Frontend >js-Tutorial >Warum verwendet jQuery „(function(window, undefined){...})(window);'?

Warum verwendet jQuery „(function(window, undefined){...})(window);'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 02:45:09752Durchsuche

Why Does jQuery Use `(function(window, undefined){...})(window);`?

Untersuchung der Syntax der JavaScript-Kapselung in jQuery

Beim Untersuchen des jQuery 1.4-Quellcodes stößt man möglicherweise auf die folgende Kapselungssyntax:

(function( window, undefined ) {

  //All the JQuery code here 
  ...

})(window);

Diese Syntax wirft Fragen zum Zweck der „undefinierten“ Variablen und auf das wiederholte Erscheinen von „window“.

Die Bedeutung von „undefiniert“

Die Variable „undefiniert“ in den Klammern ist kein reserviertes Schlüsselwort. Vielmehr handelt es sich um eine normale Variable, der ein neuer Wert zugewiesen werden kann. In diesem Fall setzt jQuery „undefiniert“ gleich „undefiniert“, um sicherzustellen, dass die globale Variable „undefiniert“ wirklich undefiniert bleibt.

Die Bedeutung von „window“

Die Variable „window“ bezieht sich auf das globale JavaScript-Objekt. Durch die Übergabe von „window“ als Argument an die anonyme Funktion erstellt jQuery einen lokalen Verweis auf das globale Objekt. Diese lokale Referenz verbessert die Leistung.

Wenn JavaScript nach einer Variablen sucht, überprüft es zunächst den lokalen Bereich. Wenn die Variable lokal nicht gefunden wird, wird die Suche mit dem nächsten Bereich usw. fortgesetzt, bis der globale Bereich erreicht ist. Durch die Erstellung eines lokalen Verweises auf das globale Objekt kann JavaScript „Fenster“ schnell finden, ohne alle Bereiche durchsuchen zu müssen.

Diese Optimierung wird von Nicholas C. Zakas in seinem Artikel „Beschleunigen Sie Ihr JavaScript“ beschrieben ,“ verbessert die Ausführungsgeschwindigkeit der jQuery-Bibliothek erheblich.

Das obige ist der detaillierte Inhalt vonWarum verwendet jQuery „(function(window, undefined){...})(window);'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn