2010-06-30 8 views
4

Quelqu'un peut-il expliquer la différence entre l'utilisation d'un $ lors de la définition de variables dans jQuery et non. Cela a-t-il un impact sur la performance?Définition de variables dans jQuery

var $someVar = $("a"); 
var someVar = $("a"); 

De plus, quelle est la différence en appelant les variables avec et sans $ (someVar) Par exemple:

$(someVar).html(); 
someVar.html(); 

Répondre

4

Dans votre premier extrait, il y a pas différence entre les deux. C'est juste un "notification" que cette variable contient un wrappet set d'objets jQuery, qui est couramment utilisé par certains développeurs.

Dans votre deuxième extrait, vous faites deux choses différentes. Vous encapsulez someVar dans un objet jQuery, puis accédez à un jQuery method (html()). Dans cet exemple, someVar peut contenir un DOM element ou un selector string comme "#some_element_id".

L'autre ligne suppose que someVar est déjà un objet jQuery, sinon cet appel échouerait.

2

Il n'y a pas de différence de performance, il est juste un identifiant. $foo est souvent utilisé pour faire référence à des objets jquery par des auteurs expérimentés afin de ne pas les confondre avec des objets non-jquery dans des scripts complexes.

En ce qui concerne l'emballage $(), vous pouvez référencer un DOMElement et l'envelopper dans jQuery, par exemple

var e = document.body; $(e).hide() 

Si nous avons essayé e.hide() il n'y aurait pas de méthode définie comme l'élément du corps n'a pas cette méthode, c'est seulement fourni par la chaîne de prototype de jQuery.

2

$somevar et somevar sont les mêmes. C'est une convention d'utiliser un $ devant un jquery variale afin que vous sachiez qu'il s'agit d'un objet enveloppé jquery.
(btw, $ ont été introduits en javascript pour distinguer le code généré par la machine pour le code écrit humain)
Cependant, $ (somevar) et somevar sont complètement différents. $ (somevar) -> Vous appelez la fonction Jquery et lui transmettez un certainvar. Vous pouvez également lire ceci comme Jquery (somevar). Donc, si somevar fait référence à un dom, l'objet dom sera enveloppé par jquery et retourné.

+0

+1 pour (btw, $ ont été introduits en javascript pour distinguer le code généré par la machine pour le code écrit humain) –

Questions connexes