Подтвердить что ты не робот

Синтаксис переменной 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?

4b9b3361

Ответ 1

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

Пример:

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

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

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

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

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

Ответ 2

Это чистый JavaScript.

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

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

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

Это уродливое, грязное, запутанное, но $, self и $self - все разные переменные, которые имеют похожие имена.

Ответ 3

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

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

var $this = $(this);

Ответ 4

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

Ответ 5

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