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