Was bedeutet diese JavaScript / jQuery-Syntax?

7

Was bedeutet folgende Syntax?

%Vor%

Was ist function($) ?

Was ist $.fn. … ?

    
aneuryzm 22.02.2010, 08:19
quelle

6 Antworten

17

Diese Konvention wird beim Schreiben von Plugins verwendet, um sicherzustellen, dass kein Konflikt mit anderen Javascript-Bibliotheken besteht, die die $ -Notation verwenden, während sichergestellt wird, dass der Autor des Plugins diese Notation weiterhin verwenden kann:

%Vor%

Der Autor deklariert eine anonyme Funktion mit einem einzelnen Parameter ($), ruft sie dann sofort auf und übergibt ihm das jQuery-Objekt. Dies stellt sicher, dass die Funktion aufgerufen wird und dass alles darin definiert ist.

Eine längere Schreibweise könnte sein:

%Vor%

Dies würde jedoch eine Variable MyDefs im globalen Namespace erzeugen. Das anonyme Funktionsmuster lässt den globalen Namespace leer und vermeidet Konflikte.

    
James Wiseman 22.02.2010, 08:27
quelle
2

Er deklariert die Funktion columnize als ein jQuery-Plugin, das es Ihnen ermöglicht, Elemente wie dieses $('.someSelector').columnize() zu verwenden. Sie können mehr über das Plugin-Authoring hier lesen.

    
Darin Dimitrov 22.02.2010 08:21
quelle
1

Es ist wahrscheinlich eine jQuery-Erweiterung, die am Ende (jQuery) wie

übergeben wird %Vor%     
YOU 22.02.2010 08:23
quelle
0

Ich habe das gerade gefunden ... ist es ein Proxy-Muster?

Proxy-Muster

Die Kombination des obigen Wissens gibt Ihnen als JavaScript-Entwickler ziemlich viel Power. Eine Möglichkeit, dies zu kombinieren, besteht darin, ein Proxy-Muster in JavaScript zu implementieren, das die Grundlagen der aspektorientierten Programmierung (AOP) ermöglicht:

%Vor%

Der obige Code umschließt den Code in einer Funktion, um die "proxied" -Variable zu verbergen. Es speichert jQuerys setArray-Methode in einem Closure und überschreibt es. Der Proxy protokolliert dann alle Aufrufe der Methode und delegiert den Aufruf an das Original. Die Verwendung von apply (this, arguments) garantiert, dass der Aufrufer den Unterschied zwischen der ursprünglichen und der proxied-Methode nicht bemerken kann.

    
aneuryzm 22.02.2010 08:23
quelle
0

Verwechseln Sie nicht die $ . Tatsächlich ist $ ein gültiger Variablenname in JavaScript (wie alle Variablen, die $ enthalten, Quelle (PDF) ).

Also könnte die erste Zeile als

umformuliert werden %Vor%

was vielleicht üblicher aussieht. Für den Rest, ja, es ist ein Proxy-Muster, und James Wiseman's Antwort erklärt, was los ist.

    
Boldewyn 22.02.2010 08:31
quelle
0

function($) {...} definiert eine anonyme Funktion mit einem formalen Parameter namens $ . $.fn bezieht sich auf die Eigenschaft fn des Objekts, auf die sich die Variable $ bezieht.

    
outis 22.02.2010 08:32
quelle

Tags und Links