JavaScript Двойной знак доллара
Я понимаю использование (одного) знака доллара в популярных библиотеках JavaScript, таких как jQuery и Prototype. Я также понимаю значение знака двойного доллара в PHP (переменные переменные). Дин Эдвардс использует знак двойного доллара в своей знаменитой функции JavaScript addEvent(). Вот за исключением того, что используется знак двойного доллара:
function addEvent(element, type, handler) {
// assign each event handler a unique ID
if (!handler.$$guid) handler.$$guid = addEvent.guid++;
// create a hash table of event types for the element
if (!element.events) element.events = {};
// create a hash table of event handlers for each element/event pair
var handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = {};
// store the existing event handler (if there is one)
if (element["on" + type]) {
handlers[0] = element["on" + type];
}
}
// store the event handler in the hash table
handlers[handler.$$guid] = handler;
// assign a global event handler to do all the work
element["on" + type] = handleEvent;
};
// a counter used to create unique IDs
addEvent.guid = 1;
Из того, что я прочитал, знак доллара только официально имеет значение в JavaScript для инструментов генерации кода, хотя этот стандарт в значительной степени игнорируется сегодня из-за широко распространенного использования знаков доллара в вышеупомянутых библиотеках JavaScript.
Может ли кто-нибудь пролить свет на это использование знака двойного доллара в JavaScript?
Большое спасибо!
Ответы
Ответ 1
Я написал эту функцию.:)
Для префиксов $$ больше нет особого значения. Это была нотация, которую я использовал, когда пакер был популярен. Пакер сократил имена переменных с помощью этого префикса. В настоящее время Packer автоматически сокращает имена переменных, поэтому это обозначение является избыточным.
Короткий ответ, знак $является допустимым идентификатором в JavaScript, поэтому вы просто смотрите на кучу уродливых имен переменных.;)
Ответ 2
Хорошо, это просто соглашение об именах разработчика. "$$
" также может быть "aa
", для всех целей и задач.
Как вы уже упоминали, одна знаковая функция знака доллара $()
стала почти стандартной в различных библиотеках JavaScript. "Одна функция, чтобы править ими всеми", а? Но помните, что это ничего не присуще самому JS. Это просто имя функции, которое заменило document.getElementById()
.
Итак, с учетом сказанного $$
может быть что угодно. Черт, у вас может быть такая функция:
function $$$$$$$$(){
//i've got dollar signs in my eyes!
}
Другими словами, это просто имя переменной/функции - как и все остальные.
Ответ 3
Как и другие, $$
- это произвольный идентификатор.
Инструментарий JavaScript MochiKit сохраняет функцию, идентифицированную тем же, что и выбирать элементы с помощью синтаксиса селектора CSS, как и jQuery, за исключением того, что он не обертывает все соответствующие элементы в специальном объекте.
Итак, да, это ничего особенного, само по себе.
Ответ 4
Насколько я знаю, знак доллара - это обычный символ, который можно использовать в именах переменных. Это может быть соглашение, означающее свойство, с которым не следует смешивать.
Я предполагаю, что автор использовал $$guid
, чтобы избежать столкновения с существующими именами свойств. Вероятно, он мог бы использовать __guid
или что-то подобное.
Ответ 5
Двойной знак доллара ссылается на следующие термины -
//getElementById
function $$(id){
return document.getElementById(id);
}