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

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?

Большое спасибо!

4b9b3361

Ответ 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);
  }