87 votes

jquery variable syntaxe

Je suis en train d'apprendre jQuery en essayant de comprendre les autres personnes de code. Je suis tombé sur ceci:

jQuery.fn.myFunc = function(options, callback) {

//stuff

  jQuery(this)[settings.event](function(e) {
    var self = this,
    $self = jQuery( this ),
    $body = jQuery( "body" );
     //etc.
  }

//more stuff

}

Ma compréhension est qu' $ se réfère à l'objet jQuery. Alors pourquoi mettre $ avec $self et $body? Et est - self le même que $self?

232voto

David Points 36241

$auto a peu à faire avec $, ce qui est un alias pour jQuery dans ce cas. Certaines personnes préfèrent mettre un signe de dollar en collaboration avec la variable de faire une distinction entre les vars et les objets jQuery.

exemple:

var self = 'some string';
var $self = 'another string';

Elles sont déclarées comme deux variables différentes. C'est comme mettre de soulignement avant de variables privées.

Un peu le modèle populaire est:

var foo = 'some string';
var $foo = $('.foo');

De cette façon, vous savez $foo est un cache objet jQuery plus tard dans le code.

30voto

Quentin Points 325526

C'est de la pure JavaScript.

Il n'y a rien de spécial à propos de $. C'est juste un personnage qui peut être utilisé dans les noms de variable.

var $ = 1;
var $$ = 2;
alert($ + $$);

jQuery attribue cœur de la fonction à une variable nommée $. Le code que vous avez attribue this d'une variable locale appelée self et les résultats de l'appel de jQuery avec d' this comme argument à une variable globale appelée $self.

C'est moche, sale, déroutant, mais $, self et $self sont toutes différentes variables qui ont des noms similaires.

9voto

BalusC Points 498232

Non, il ne l'est certainement pas. Il est juste un autre nom de variable. L' $() dont vous parlez est en fait le jQuery de base de la fonction. L' $self est juste une variable. Vous pouvez même le renommer en foo si vous voulez, ce n'est pas de changer les choses. L' $ (et _) sont des caractères en Javascript identificateur.

Pourquoi ce qui est fait est souvent juste un peu de code convention ou pour éviter des affrontements avec inversée de mots clés. J'ai souvent l'utiliser pour $this comme suit:

var $this = $(this);

7voto

Rich Points 1767

auto et $auto ne sont pas les mêmes. Le premier est l'objet pointé par "cela", et le second un objet jQuery dont la "portée" est l'objet pointé par "cela". De même, $corps n'est pas le corps de l'élément DOM, mais l'objet jQuery dont la portée est l'élément body.

2voto

Jan Points 58

Le dollarsign comme préfixe dans le var nom est une utilisation de la notion de la notation hongroise.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X