Wrapping einfaches JavaScript-Objekt in jquery $ ({})

8

Ich habe dieses Code-Fragment aus einem Buch, das ich gerade lese. Und möchte verstehen, was $({}) bedeutet und was genau es ist.

Ich habe versucht, auf mehreren Suchmaschinen und sogar auf SO zu suchen. $({}) war kein suchfreundlicher Begriff.

%Vor%

Ich habe eine ähnliche Frage zu $([]) gefunden, aber das tue ich nicht denke, es ist ziemlich dasselbe.

    
Arturo Hernandez 06.09.2012, 16:47
quelle

2 Antworten

14

Sie wickeln gerade ein einfaches JavaScript-Objekt als jQuery ein.

Aus der jquery-Dokumentation :

  

Arbeiten mit einfachen Objekten

     

Derzeit werden nur die unterstützten Operationen unterstützt   Bei einfachen JavaScript-Objekten, die in jQuery eingeschlossen sind, gilt Folgendes:   .data (), prop (), bind (), .unbind (), trigger () und .triggerHandler ().   Die Verwendung von .data () (oder einer anderen Methode, die .data () erfordert) für ein einfaches Objekt   führt zu einer neuen Eigenschaft für das aufgerufene Objekt   jQuery {randomNumber} (z. B. jQuery123456789).

%Vor%      

Sollte   .trigger ('eventName') verwendet wird, wird nach 'eventName' gesucht   Eigenschaft auf dem Objekt und versuchen, es nach einem angehängt auszuführen   jQuery-Handler werden ausgeführt. Es überprüft nicht, ob die Immobilie   ist eine Funktion oder nicht. Um dieses Verhalten zu vermeiden,   .triggerHandler ('eventName') sollte stattdessen verwendet werden.

%Vor%

Hier ist ein (nicht wirklich nützliches) Beispiel:

%Vor%

Wenn Sie Ihr Objekt mit $({}) erstellen, können Sie es als Aufruf für data , bind usw. verwenden. Dies ist wahrscheinlich das minimale non-DOM keepable jquery-Objekt, das Sie erstellen können.

    
Denys Séguret 06.09.2012, 16:48
quelle
1

Das hat wirklich mehr mit Javascript-Syntax zu tun als jQuery.

{} ist für Objekte wie folgt:

%Vor%

[] ist für Arrays wie folgt:

%Vor%

() ist für Funktionen (was jQuery im Allgemeinen ist). Das ist etwas komplizierter, weil es mehrere Bedeutungen haben kann.

%Vor%

jQuery ist im Allgemeinen nur eine Funktion namens $ anstelle von myFunction so ...

%Vor%

Das Argument, das Sie jQuery übergeben, kann fast alles sein. Wenn Sie eine Zeichenfolge wie '#myDiv' übergeben, verwendet jQuery dieses Argument als Selektor, um ein Element aus dem HTML zu erhalten. Wenn Sie etwas anderes wie ein Objekt oder ein Array übergeben, kann es immer noch einige Dinge damit tun: Ссылка als @dystyroy sagte.

So $({}) ist das gleiche wie $(myBlankObject) , zum Beispiel:

%Vor%

und

%Vor%

$('selector') funktioniert. $({'selector'}) oder $(['selector']) nicht, weil Sie jQuery keine Zeichenfolge, sondern einen anderen Datentyp übergeben.

    
Fresheyeball 06.09.2012 17:17
quelle

Tags und Links