2012-09-08 9 views
5

Ich habe den folgenden Code, der ich weiß, ist ein IIFE. Ich habe jedoch nie verstanden, was (jQuery) und ($) ist. Ich weiß, dass es etwas damit zu tun hat, eine Referenz von jQuery in das IIFE zu geben, aber könnte mir jemand den Zweck von ihnen erklären? Vielen Dank für Ihre Hilfe und Zeit :-)Sofort aufgerufene Funktion Ausdruck (IIFE) In JavaScript - Passing jQuery

(function ($) { 
//code 
})(jQuery); 

Antwort

13

$ ein Argument an eine Funktion ist. jQuery wird als das Argument übergeben, wenn die Funktion aufgerufen wird.

Betrachten Sie es wie folgt aus:

function init($) { 
    // code can use $ here as a shortcut for jQuery 
    // even if $ has a different definition globally or isn't defined globally 
} 

init(jQuery); 

Außer der Tatsache, dass dieses Beispiel ein globales Symbol erzeugt init, die Ausführung dieser und Ihre IIFE sind identisch. Beide definieren eine Funktion und rufen sie sofort auf.

$ ist ein Argument für die Funktion. jQuery ist, was als dieses Argument übergeben wird. Dies dient dazu, $ als eine Verknüpfung für jQuery innerhalb dieser Funktion zu definieren, ohne die globale Definition von $ zu beeinflussen. Manchmal kann es auch einen kleinen Leistungsvorteil geben, da lokal definierte Symbole (entweder als lokale Variablen oder als benannte Argumente) etwas schneller zugänglich sein können als globale Symbole.

Der Vorteil des IIFE ist, dass keine neuen globalen Symbole definiert sind. Ansonsten ist es in der Ausführung identisch mit diesem Code.

+0

schöne Antwort mein Freund :-) Danke! :-) – Hirvesh