38 votes

Quelle est la différence entre "this", "$this" et "$(this)" ?

Quelle est la différence entre ces trois formes :

this
$this
$(this)

51voto

Nick Craver Points 313913

En typique vous les verrez généralement comme ceci (l'élément $this l'utilisation peut varier) :

  • this - Fait référence à l'élément DOM dans le gestionnaire sur lequel vous vous trouvez actuellement, mais cela peut être un tout autre objet dans d'autres situations, mais c'est toujours le contexte.
  • $this - Généralement créé par var $this = $(this) une version mise en cache de la version enveloppée de jQuery pour plus d'efficacité (ou enchaîner les $(this) pour obtenir la même chose dans de nombreux cas).
  • $(this) - La version enveloppée par jQuery de l'élément, ce qui vous permet d'accéder aux éléments suivants toutes ses méthodes (ceux qui sont dans $.fn spécifiquement).

32voto

Quentin Points 325526
  • this est l'objet sur lequel une méthode a été appelée
  • $this est une variable mal nommée, sans signification particulière
  • $(this) appelle la fonction mal nommée $ avec this comme seul argument

9voto

Alexey Lebedev Points 4778

Dans le gestionnaire d'événements de jQuery :

  • this - est un élément du DOM auquel vous avez assigné le gestionnaire d'événement
  • $(this) - est un objet jQuery créé à partir de cet élément
  • $this - typiquement, une variable contenant le résultat de $(this)

Plus généralement :

  • este à l'intérieur d'une fonction fait référence à l'objet ou à la primitive sur lequel la fonction est appelée. Lorsqu'une fonction est utilisée comme constructeur, elle fait référence au nouvel objet en cours de construction. En dehors de toute fonction this fait référence à l'objet global ( window en mode non strict).

    Vous pouvez trouver un bonne explication détaillée sur MDN .

  • $this est un nom de variable. En JavaScript, les noms de variables peuvent commencer par $ . Certains aiment l'utiliser comme préfixe pour les variables contenant des objets jQuery :

    var body = document.body;   // no prefix for a plain DOM object
    var $body = jQuery('body'); // prefix for the same object wrapped in jQuery
    var $this = $(this);
  • $(this) est un appel de fonction, où $ est un nom de fonction, et this est son argument :

    var $ = alert;
    $(this); // [object Window]

    $ n'a pas de signification particulière en soi. Mais jQuery définit l'élément $() comme raccourci de la fonction jQuery() . En fonction de ses arguments, cette fonction peut faire beaucoup de choses différentes .

1voto

Jez Points 4075

Dans le contexte de jQuery, "this" est l'objet sur lequel une méthode a été appelée. $this' est en effet une variable mal nommée, sans signification particulière. $(this)' transmet 'this' à jQuery, qui renvoie un objet jQuery associé à 'this', quel qu'il soit, tant que 'this' est un objet DOM.

0voto

tKe Points 426

Votre question serait mieux servie avec plus de contexte.

Cependant, je suppose que vous posez des questions sur les variables dans le contexte d'un callback sur l'événement d'un élément ( click par exemple).

  • this est le contexte de votre gestionnaire (normalement l'élément DOM, dans le cas d'un gestionnaire d'événement DOM).
  • $this est généralement utilisé pour stocker le résultat de $(this)
  • $(this) renvoie l'objet jQuery qui englobe this - voir le Documentation sur jQuery pour plus d'informations.

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