Was ist "i" in "function (i)" im folgenden JavaScript?

7

Im folgenden Code gibt es "function (i)", aber "i" wurde nirgends vor dieser Anweisung deklariert.

%Vor%

Es sieht so aus, als könnte es einer c ++ "this" -Anweisung ähnlich sein. Ist das überhaupt richtig?

    
patrick 20.08.2010, 19:32
quelle

8 Antworten

4

i ist nur ein Funktionsparameter, der von retarder function an die anonyme Funktion übergeben wird.

Was es tut ist:

%Vor%

und Callback wird über anonyme Funktion definiert:

%Vor%

Also ist i eine Definition des Parameters der anonymen Funktion.

    
Martin Vseticka 20.08.2010, 19:34
quelle
11

Es sieht wie eine Funktionsdeklaration aus:

%Vor%

Also i ist ein Wert, der als erster Parameter an die Funktion übergeben wird (die inline als anonyme Funktion deklariert wird), vermutlich durch die inneren Abläufe der Methode retarder Du gibst die Funktion in.

Das erneute Schreiben des Codes, so dass es ein Bit besser lesbar ist, macht dies ein wenig klarer:

%Vor%

Und Sie können es dann umschreiben sogar klarer:

%Vor%     
Rob 20.08.2010 19:34
quelle
7

Es ist ein Funktionsparameter.

    
Raoul Duke 20.08.2010 19:34
quelle
5

es erstellt eine anonyme Funktion, die ein einzelnes Argument verwendet, das dann in der Funktion als i bezeichnet wird.

    
muhmuhten 20.08.2010 19:34
quelle
2

Der Grund, warum Sie das nicht verstehen, ist, wenn Sie mit der Verwendung von anonymen Funktionen in JavaScript nicht vertraut sind. Sie kennen wahrscheinlich etwas wie:

%Vor%

i ist ein Parameter für die Funktion double . In JavaScript könnte die gleiche Funktion wie folgt ausgeführt werden:

%Vor%

In diesem Fall wird eine anonyme Funktion erstellt und dann einer Variablen double zugewiesen. i ist immer noch nur ein Parameter. Beide können dann wie double(3) aufgerufen werden.

In dem von Ihnen angegebenen Beispiel wurde die anonyme Funktion nicht einer Variablen zugewiesen, sondern als Argument an eine andere Funktion übergeben.

    
Russell Leggett 20.08.2010 19:54
quelle
1

Die Variable i in der Deklarationsfunktion der anonymen Funktion (i) ist der Name, der für den ersten Parameter innerhalb des Funktionskörpers verwendet wird. Es entspricht keiner anderen Variable auf Ihrer Seite.

    
Nathan Hughes 20.08.2010 19:33
quelle
1

Wenn Sie versuchen, den verschleierten Code zu entschlüsseln, den Sie zu sein scheinen, dann suchen Sie wahrscheinlich nach dieser Funktionsdefinition ...

%Vor%

Ich musste etwas tiefer graben, um es zu finden, weil es dynamisch in einem eval () generiert wurde.

Um Ihre Frage zu beantworten, ist der Parameter "i" also das Objekt "ul" (in dem von Ihnen geposteten Code).

Wenn Sie sich die Retarder-Funktion ansehen, gibt sie "this" zurück, genau wie die meisten anderen jquery-Plugins, so dass die Kettenfähigkeit der Plugins erhalten bleibt.

entschärft den Spaß nicht?

    
user512374 21.06.2011 15:28
quelle
0

Die Variable i repräsentiert das eigentliche Objekt (wie das Schlüsselwort this )

Erklären Sie mehr:

1) Ist ein Parameter für eine anonyme Funktion, wie wir sehen können:

%Vor%

2) Ist ein Verweis auf das aktuelle Objekt ( this ).

Wenn dieses jquery-Plugin beendet ist, ruft es die Callback-Funktion auf:

%Vor%

Wo das ist Parameter.

    
Topera 20.08.2010 19:33
quelle

Tags und Links