Je me demandais, comment va le $. en $ .ajax ({...}); travail? Cela n'a pas de sens pour moi. Bien sûr .ajax en tant que membre a du sens mais $ n'est pas un nom de variable? ou est-ce? Comment est-il défini? P>
6 Réponses :
$ est la même chose que jQuery. C'est-à-dire que vous pouvez écrire jQuery.ajax (...) etc. P>
La partie déroutante est $ est un caractère légal des noms de variables JavaScript. Il n'a pas de signification particulière, comme dans PHP ou Perl, par exemple. P>
à partir de la source: C'est une fonction (objet de première classe) avec des propriétés, telles que la fonction "$" est un caractère valide pour les noms de variables, et comme vous pouvez le constater à partir de l'extrait de code, ajax code> la fonction que vous avez mentionnée. P>
$ code> est identique au
jQuery code>. < / p> p>
$ est l'un des seuls caractères légaux pouvant être utilisés dans les noms de variables JavaScript. JQuery et d'autres bibliothèques tirent parti de cette initialisation $ pour être une fonction qui initialise l'objet JQuery.
Si je me souviens bien que le code ressemble quelque peu à ce qui suit: P>
$ = window.jQuery = function(){ return new jQuery(args); }
$ Celui-ci est défini dans la bibliothèque de JQuery pour être une référence à JQuery Shorter.
Vous pouvez télécharger la bibliothèque et voir les premières lignes: cette "fenêtre. $", "$" Appartient à l'environnement d'objet de la fenêtre. P> P>
en JavaScript, les fonctions sont des objets (pouvant être contenus par des variables). En tant que tel, ils peuvent avoir des propriétés (et des méthodes qui ne sont que des propriétés avec des fonctions comme des valeurs). Essayez ceci:
function test () { alert("hey!"); } test.foo = function (msg) { alert("you said: "+msg); }; test(); //alerts "hey!" test.foo("123") //alerts ""you said: 123". //note that I'm not calling test().foo(), //as test() returns nothing, though it could //return an object (with a foo() or any other method itself!)
Comme expliqué dans un certain nombre de ressources JavaScript, y compris Guide JavaScript de Mozilla :
Un identifiant JavaScript doit commencer par une lettre, un trait de soulignement (_) ou un signe dollar ($); Les caractères suivants peuvent également être des chiffres (0-9). Étant donné que JavaScript est sensible à la casse, les lettres incluent les caractères "A" à travers "Z" (majuscules) et les caractères "A" via "Z" (minuscule). P> blockQuote>
Voilà donc les suivants (bien que malvisés) en JavaScript: p>
xxx pré> p>
C'est un nom de fonction, une lecture de la source de jQuery. La fonction renvoie efficacement un objet JQuery qui a le membre «Ajax».
@Lazarus: En réalité, bien que la fonction $ renvoie un objet JQuery quand appelé, ce n'est pas ce qui se passe ici. $, comme toutes les fonctions de JS, est un objet et peut avoir ses propres propriétés (c'est-à-dire Ajax). L'objet JQuery est renvoyé lors de l'appelant $ ("") N'a pas de propriété Ajax (Type de Typeof $ (""). Ajax par opposition à type de $ .AJAX)