sintaxe variável jquery [duplicado]

Esta pergunta já tem uma resposta:
  • Porque é que uma variável JavaScript começaria com um sinal de Dólar? 16 respostas
Estou a aprender jQuery tentando entender o código dos outros. Encontrei isto:
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

}

o meu entendimento é que $ se refere ao objecto jQuery. Então, por que colocar $ com $self e $body? E é o mesmo que $self?

Author: dnagirl, 2009-12-16

5 answers

$self tem pouco a ver com $, que é um pseudónimo do jQuery neste caso. Algumas pessoas preferem colocar um sinal de Dólar junto com a variável para fazer uma distinção entre vars regulares e objetos jQuery.

Exemplo:

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

Estas são declaradas como duas variáveis diferentes. É como colocar o underscore antes de variáveis privadas.

Um padrão um pouco popular é:

var foo = 'some string';
var $foo = $('.foo');
Assim, sabes que o $foo é um objecto de Jquery escalfado mais tarde. codigo.
 201
Author: David, 2012-08-20 10:09:25
Isto é JavaScript puro.

Não há nada de especial em $. É apenas um personagem que pode ser usado em nomes de variáveis.

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

O JQuery apenas atribui a sua função principal a uma variável chamada $. O código que você tem atribui this a uma variável local chamada self e os resultados de chamar jQuery com this como argumento para uma variável global chamada $self.

É feio, sujo, confuso, mas ... $, self e $self são todas variáveis diferentes que acontece que tem nomes semelhantes.
 27
Author: Quentin, 2009-12-16 18:30:34
Não, certamente não é. É apenas mais um nome variável. O $() de que estás a falar é na verdade a função principal do jQuery. O $self é apenas uma variável. Você pode até renomeá-lo para foo Se quiser, isso não muda as coisas. O $ (e _) são caracteres legais num identificador de Javascript.

Por que isso é feito assim muitas vezes é apenas uma convenção de código ou para evitar confrontos com palavras-chave invertidas. Uso-o frequentemente para $this como se segue:

var $this = $(this);
 9
Author: BalusC, 2009-12-16 18:24:24
Self e $self não são a mesma coisa. O primeiro é o objeto apontado por " este "e o segundo um objeto jQuery cujo" escopo "é o objeto apontado por"este". Da mesma forma, $body não é o elemento DOM corpo, mas o objeto jQuery cujo escopo é o elemento corpo.
 7
Author: Rich, 2009-12-16 18:19:39

A dolarsign como prefixo no nome var é uma utilização do conceito da notação húngara .

 2
Author: Jan, 2012-06-14 23:17:56