синтаксис переменной jquery [дубликат]


этот вопрос уже есть ответ здесь:

Я изучаю jQuery, пытаясь понять код других людей. Я столкнулся с этим:

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

}

мое понимание заключается в том, что $ относится к объекту jQuery. Так зачем же ставить $ С $self и $body? И это self аналогично $self?

5 79

5 ответов:

$self имеет мало общего с $, который является псевдонимом для jQuery в данном случае. Некоторые люди предпочитают ставить знак доллара вместе с переменной, чтобы сделать различие между обычными объектами vars и jQuery.

пример:

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

они объявляются как две разные переменные. Это как поставить подчеркивание перед частными переменными.

несколько популярный шаблон:

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

таким образом, вы знаете $foo-это кэшированный объект jQuery позже в коде.

это чистый JavaScript.

в этом нет ничего особенного $. Это просто символ, который может использоваться в именах переменных.

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

jQuery просто назначает его основную функцию переменной с именем $. Код у вас присваивает this локальной переменной с именем self и результаты вызова jQuery с this в качестве аргумента в глобальной переменной с именем $self.

это некрасиво, грязно, запутанно, но $,self и $self все разные переменные, которые имеют одинаковые имена.

нет, конечно нет. Это просто еще одно имя переменной. Элемент $() вы говорите о том, что на самом деле основная функция jQuery. Элемент $self - это просто переменная. Вы даже можете переименовать его в foo Если вы хотите, это не меняет дела. Элемент $_) являются юридическими символами в идентификаторе Javascript.

почему это делается так часто просто какой-то код конвенции или чтобы избежать столкновений с обратными ключевыми словами. Я часто использую его для $this как следует:

var $this = $(this);

self и $self-это не одно и то же. Первый-это объект, на который указывает "это", а второй-объект jQuery, "область действия" которого является объектом, на который указывает "это". Аналогично, $body-это не элемент body DOM, а объект jQuery, область действия которого является элементом body.

dollarsign в качестве префикса в имени var-это использование из концепции венгерская нотация.