2010-02-03 12 views
13

Esto es una especie de meta-pregunta. Muchos fragmentos de JavaScript que he visto aquí en SO se nombran con un prefijo de signo de dólar (por ejemplo, $id en la segunda línea del fragmento que se muestra en this pregunta). No me refiero a jQuery u otras bibliotecas. Soy muy consciente de que esto es válido, pero parece incómodo hacerlo cuando no es necesario. ¿Por qué las personas nombran sus variables de esta manera? ¿Es solo la familiaridad con un lenguaje del lado del servidor como PHP que transporta en su código JavaScript?

Pensé que tal vez era para identificar una variable como un objeto jQuery, por ejemplo, cuando guarda el resultado de una selección en una variable para eliminar selecciones duplicadas más adelante, pero no he visto ninguna convención consistente .

Respuesta

19

Sintácticamente, el signo de dólar en sí no significa nada; para el intérprete, es simplemente otro personaje, como _ o q. Pero muchas personas que utilizan jQuery y otros marcos similares prefijarán las variables que contienen un objeto jQuery con $ para que se identifiquen fácilmente y, por lo tanto, no se mezclen con elementos como enteros o cadenas. También podría adoptar fácilmente la misma convención prefijando tales variables con jq_ y tendría el mismo efecto.

En efecto, es un tipo crudo de Hungarian notation.

+0

'En efecto, es un tipo crudo de notación húngara. Afortunadamente, no veo escrito mucho JavaScript como' var strHippo = "hippo"; '. –

+3

no es notación húngara en absoluto ... –

4

A veces prefijo un nombre de variable con $ para indicar que es un elemento jQuery-wrapped (más a menudo cuando estoy usando $(this) en una función mucho, lo asigno a $this).

Parte de donde puede venir la falta de convención es que las personas copien y peguen códigos juntos que usan diferentes convenciones, produciendo código inconsistente.

Además, a veces (rara vez espero) las personas que programan en PHP mucho pondrán $ 'al comienzo de sus nombres de variables por hábito.

+0

Indicando objetos jQuery guardados con $ parece una práctica decente. Ha sido desconcertante cuando lo veo en una variable que se usa para almacenar un String u otro tipo no relacionado. –

+0

Definitivamente, realmente no tiene sentido usar arbitrariamente '$' s en algunos lugares y no en otros. Aunque sería extraño usarlo en todas partes, también. – pib

2

Sospecho que la persona en ese ejemplo solo estaba copiando el patrón jQuery, o está acostumbrado a PHP/Perl, sin entender realmente que no es necesario y no tiene un significado especial.

Sin embargo, he visto programadores [experimentados] utilizarlo para nombres de variables que son palabras clave reservadas, como $class o $this. O incluso para los globales. Es realmente una preferencia personal más que nada, en ese caso.

+0

Parece probable que las personas copien jQuery sin saberlo mejor. –

Cuestiones relacionadas