2010-02-03 11 views
13

To jest rodzaj meta-pytania. Wiele fragmentów kodu JavaScript, które widziałem tutaj w SO, jest nazywane prefiksem ze znakiem dolara (na przykład $id w drugim wierszu opisu pokazanego w pytaniu this). Nie odwołuję się do jQuery ani innych bibliotek. Doskonale zdaję sobie sprawę, że jest to ważne, ale wydaje się to niezręczne, gdy nie jest to konieczne. Dlaczego ludzie nazywają swoje zmienne w ten sposób? Czy jest to po prostu znajomość języka po stronie serwera, takiego jak PHP, przenoszącego kod JavaScript?

Pomyślałem, że być może chodzi o to, aby zidentyfikować zmienną jako obiekt jQuery, na przykład, gdy zapisujesz wynik selekcji do zmiennej, aby później wyeliminować zduplikowane selekcje, ale nie widziałem żadnej spójnej konwencji .

Odpowiedz

19

Syntaktycznie znak dolara sam w sobie nic nie znaczy - dla tłumacza jest to po prostu inna postać, taka jak _ lub q. Ale wiele osób używających jQuery i innych podobnych frameworków będzie prefiksować zmienne, które zawierają obiekt jQuery z $, dzięki czemu można je łatwo zidentyfikować, a zatem nie pomieszać z takimi liczbami, jak liczby całkowite lub ciągi. Równie łatwo można przyjąć tę samą konwencję, dodając przedrostek takich zmiennych do jq_ i miałby ten sam efekt.

W rezultacie jest to surowy rodzaj Hungarian notation.

+0

'W rezultacie jest to surowy rodzaj notacji węgierskiej. Na szczęście nie widzę wiele JavaScript napisany jak' var strHippo = "hippo"; '. –

+3

to nie jest notacja węgierska ... –

4

Czasami będę prefiksować nazwę zmiennej za pomocą $, aby wskazać, że jest to element zawinięty w jQuery (najczęściej gdy używam $(this) w dużo funkcji, przypiszę to do $this).

Część tego, z czego może wynikać brak konwencji, polega na tym, że ludzie kopiują razem kod, który używa różnych konwencji, tworząc niespójny kod.

Ponadto, czasami (rzadko mam nadzieję), ludzie, którzy programują w PHP, umieszczą na początku ich nazw zmiennych z przyzwyczajenia.

+0

Wskazanie zapisanych obiektów jQuery za pomocą $ wydaje się być przyzwoitą praktyką. To jest po prostu zaskakujące, gdy widzę to na zmiennej używanej do przechowywania Stringa lub jakiegoś innego niepowiązanego typu. –

+0

Zdecydowanie nie ma sensu arbitralnie używać '$' s w niektórych miejscach, a nie w innych. Chociaż byłoby dziwnie używać go wszędzie. – pib

2

Podejrzewam, że osoba w tym przykładzie po prostu kopiowała wzorzec jQuery lub jest używana do PHP/Perl, nie rozumiejąc naprawdę, że nie jest to konieczne i nie ma specjalnego znaczenia.

Jednak widziałem, że [doświadczeni] programiści używają go do nazw zmiennych, które są zastrzeżonymi słowami kluczowymi, takimi jak $class lub $this. Lub nawet dla globali. W tym przypadku jest to bardziej osobiste preferencje niż cokolwiek innego.

+0

Ludzie, którzy kopiują jQuery, nie wiedząc, że jest lepszy, wydają się prawdopodobne. –

Powiązane problemy