2010-02-03 15 views
13

Questa è una sorta di meta-domanda. Molti frammenti di JavaScript che ho visto qui su SO sono stati denominati con un prefisso di segno del dollaro (ad esempio, $id nella seconda riga del frammento mostrato nella domanda this). Non mi riferisco a jQuery o ad altre librerie. Sono ben consapevole che questo è valido, ma sembra difficile da fare quando non è necessario. Perché le persone nominano le loro variabili in questo modo? È solo familiarità con un linguaggio lato server come PHP che trasporta nel loro codice JavaScript?

Ho pensato che fosse possibile identificare una variabile come un oggetto jQuery, ad esempio quando si salva il risultato di una selezione in una variabile al fine di eliminare le selezioni duplicate in seguito, ma non ho visto alcuna convenzione coerente .

risposta

19

Sinteticamente, il simbolo del dollaro stesso non significa nulla - all'interprete, è solo un altro carattere, come _ o q. Ma molte persone che usano jQuery e altri framework simili prefigurano variabili che contengono un oggetto jQuery con un $ in modo che siano facilmente identificabili e quindi non confondibili con cose come numeri interi o stringhe. Si potrebbe facilmente adottare la stessa convenzione prefiggendo tali variabili con jq_ e avrebbe lo stesso effetto.

In effetti, è un tipo grezzo di Hungarian notation.

+0

'In effetti, è una specie di notazione ungherese grezza. Fortunatamente, non vedo molto JavaScript scritto come' var strHippo = "hippo"; '. –

+3

la notazione non ungherese ... –

4

farò a volte precedere un nome di variabile con $ per indicare che si tratta di un elemento jQuery-avvolto (il più delle volte quando sto usando $(this) in una funzione molto, mi assegnerò che a $this).

Parte di cui la mancanza di convenzione può derivare è che le persone copiano insieme il codice che utilizza convenzioni diverse, producendo così codice incoerente.

Inoltre, a volte (raramente spero) le persone che programmano in PHP metterà $ all'inizio del loro nome variabile per abitudine.

+0

L'indicazione di oggetti jQuery salvati con $ sembra una pratica decente. E 'stato semplicemente sconcertante quando lo vedo su una variabile usata per memorizzare una stringa o qualche altro tipo non correlato. –

+0

Sicuramente, non ha senso usare arbitrariamente '$' s in alcuni posti e non in altri. Anche se sarebbe strano usarlo ovunque, anche. – pib

2

Sospetto che la persona nell'esempio copiasse il modello jQuery, o sia usata in PHP/Perl, senza capire veramente che non è necessario e non ha significato speciale.

Tuttavia, ho visto i programmatori [esperti] utilizzarlo per nomi di variabili che sono parole chiave riservate, come $class o $this. O anche per i globali. È davvero una preferenza personale più che altro, in quel caso.

+0

Le persone che copiano jQuery senza conoscere meglio sembrano verosimili. –

Problemi correlati