2010-06-05 8 views
7

Kann jemand erklären, worauf die jquery-Dokumentation mit dieser Anweisung genau Bezug nimmt: "das Argument zum Schreiben von fehlersicherem jQuery-Code unter Verwendung des $ -Alias, ohne auf den globalen Alias ​​angewiesen zu sein", wenn die folgende Verwendung verwendet wird:Failsafe-jQuery-Code

Ich benutze jquery schon seit einiger Zeit, also verstehe, was dieser Code in gewissem Umfang tut, aber die in der Dokumentation über das Schreiben von fehlersicherem jquery Code verwendete Formulierung verwirrt mich und ich bin mir nicht sicher, ob es wichtig ist oder nicht.

Antwort

9

Der Variablenname $ ist nicht eindeutig für jQuery - auch andere JavaScript-Bibliotheken verwenden ihn. Wenn Sie beide auf derselben Seite verwenden (vielleicht nicht absichtlich - eine andere Bibliothek könnte von einem Drittanbieter-Skript übernommen werden), besteht die Gefahr, dass die Variable, die Sie auf ein jQuery-Objekt verweisen, tatsächlich auf etwas anderes verweist, was Ihren Code bedeutet zu brechen, da die API, an der Sie arbeiten, nicht existiert.

Dieser Code verwendet die globale jQuery-Funktion (die mit keiner anderen Bibliothek kollidiert), an die eine anonyme Funktion übergeben wird, die das jQuery-Hauptobjekt als Parameter empfängt. Da dieser Parameter auf die Funktion und nicht global beschränkt ist, kann nichts außerhalb der Funktion dies beeinträchtigen und Sie können damit sicher programmieren, dass es immer nur ein jQuery-Objekt sein wird, wenn Sie es nicht selbst überschreiben.

3

Failsafe bezieht sich nur auf die Möglichkeit, dass ein anderer Code oder eine Bibliothek auch versuchen könnte, $ als Var-Namen zu verwenden. Es ist viel weniger wahrscheinlich, dass eine andere Bibliothek den Namen jQuery verwendet. Wenn Sie also alles in eine Funktion kapseln und jquery als Argument ($) übergeben, können Sie das $ sicher verwenden.

4

Der Begriff bezieht sich auf beim Erstellen von Plugins, wenn Sie beispielsweise nicht sicher sein können, dass $ ein Alias ​​für das Objekt jQuery ist. Der ausfallsichere Art und Weise ist es, entweder jQuery ausschließlich direkt zu verwenden oder in einem Verschluss wickeln, wenn Sie in der Lage sein wollen $ in Ihrem Plugin-Code zu verwenden:

(function($){ 
    // here code can always use $ as n alias for jQuery, regardless if the user 
    // has repointed $ to something else. 
})(jQuery);