JavaScript Double Dollar Sign

Comprendo l’uso del (unico) simbolo del dollaro nelle librerie JavaScript più popolari come jQuery e Prototype. Capisco anche il significato del doppio simbolo del dollaro in PHP (variabili variabili). Dean Edwards usa il doppio simbolo del dollaro nella sua famosa funzione JavaScript addEvent () . Ecco un eccetto contenente l’uso del doppio simbolo del dollaro:

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; 

Da quello che ho letto, il simbolo del dollaro ha ufficialmente significato solo in JavaScript per gli strumenti di generazione del codice, anche se questo standard è ampiamente ignorato oggi a causa del diffuso utilizzo dei segni del dollaro nelle librerie JavaScript citate sopra.

Qualcuno può far luce su questo utilizzo del doppio segno del dollaro in JavaScript?

Grazie mille!

Ho scritto questa funzione. 🙂

Non c’è più alcun significato speciale per i prefissi $$. Era una notazione che usavo quando packer era popolare. Packer accorcia i nomi delle variabili con questo prefisso. Oggigiorno Packer abbrevia automaticamente i nomi delle variabili, quindi questa notazione è ridondante.

Risposta breve, il segno $ è un identificatore valido in JavaScript, quindi stai solo osservando una serie di brutti nomi di variabili. 😉

Beh, davvero, è solo la convenzione di denominazione dello sviluppatore. ” $$ ” potrebbe anche essere ” aa “, a tutti gli effetti.

Come hai detto, la funzione di segno singolo dollaro $() è diventata quasi standard in varie librerie JavaScript. “L’unica funzione per domarli tutti”, eh? Ma ricorda, non è niente di inerente allo stesso JS. È solo un nome di funzione che ha preso il sopravvento per sostituire document.getElementById() .

Quindi, con quello detto, $$ potrebbe essere qualsiasi cosa. Diamine, potresti anche avere una funzione come questa:

 function $$$$$$$$(){ //i've got dollar signs in my eyes! } 

In altre parole, è solo un nome di variabile / funzione, proprio come tutto il resto.

Proprio come altri hanno detto, $$ è un identificatore arbitrario.

Il toolkit JavaScript MochiKit riserva una funzione identificata dallo stesso per selezionare gli elementi usando la syntax del selettore CSS , proprio come fa jQuery, tranne senza avvolgere tutti gli elementi corrispondenti in un object speciale.

Quindi, sì – non è niente di particolarmente speciale, di per sé.

Per quanto ne so, il simbolo del dollaro è solo un carattere normale che può essere utilizzato nei nomi delle variabili. Potrebbe essere una convenzione per significare una proprietà che non dovrebbe essere confusa con.

La mia ipotesi è che l’autore abbia utilizzato $$guid per evitare il contrasto con i nomi di proprietà esistenti. Probabilmente avrebbe potuto usare __guid o qualcosa di simile.

Il doppio simbolo del dollaro è indicato nei seguenti termini:

 //getElementById function $$(id){ return document.getElementById(id); }