синтаксис переменной 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 ответов:
$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-это использование из концепции венгерская нотация.