2011-01-31 3 views
2

Я не обращал внимания на идею/цель/использование Javascript $, как в

функции $ (ID) { возвратного document.getElementById (ID); }

Не могли бы вы объяснить или пояснить мне объяснение?

Спасибо!

- Пит

+1

должно было быть google grok. Это новое для меня. –

+2

'$' - просто имя переменной. Это может ввести в заблуждение при первом румянце, поскольку многие другие языки используют '$' для обозначения переменной ... но в случае JS это может быть полное имя. Плюс имена функций также являются переменными, что означает, что вы можете иметь 'var $ = 'hello';' или 'function $() {}' или даже 'var $ = function() {};' (второй и третий результат в том же) [полезный праймер] (http://javascript.infogami.com/Javascript_in_Ten_Minutes) – Rudu

+1

http://stackoverflow.com/questions/846585/can-someone-explain-the-dollar-sign-in-javascript –

ответ

8

Когда вы видите JavaScript код, который включает в себя множество $(foo) вызовов функций, это, вероятно, используя либо JQuery или рамок веб-разработки прототипа. Это всего лишь идентификатор; в отличие от многих других языков, идентификаторы (имена функций и переменных) могут включать и начинаться с «$».

7

В коде это имя функции.

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

function myfunc(id) { return document.getElementById(id); } 
myfunc("my_id") 

Две функции, два разных идентификатора.

2

Чаще всего это используется JQuery - в частности, JQuery создает объект со ссылкой $, который имеет различные методы для упрощения манипулирования страницы.

Это технически возможно что-нибудь прикрепить класс $

+1

Так что это символ юридического имени? –

+1

да, это символ юридического имени. – bmargulies

+0

@ Майкл да, идентификаторы могут начинаться с и включать «$» в JavaScript. – Pointy

2

Это просто название функции, называемой $(). Знак доллара ($) является допустимым символом для идентификаторов в JavaScript. Например, jQuery использует его как сокращенный псевдоним для функции jQuery().

2

Есть две основные причины для использования $ в качестве имени функции, особенно в рамках как JQuery:

  • Это короткое, но отличительное - вы собираетесь использовать все это за место, так что вы не» я хочу, чтобы он занимал слишком много места.
  • При использовании в качестве селектора элементов DOM функция и ее параметры вместе выглядят как переменная свойств Perl/PHP/Java - и это похоже на то, что она работает, поскольку основная цель - сделать что-то с выбранных элементов DOM.
+0

3) * Все остальные * делают это. (Я рад, что '_()' еще не поймал). Я считаю, что второй аргумент слабый, потому что 'var $ foo' или' baz. $ Quux' обычно не принимается. Я не вижу, как DOM как-то больше относится к Perl/PHP/Java (или где Java использует '$' за исключением сгенерированных классов), чем просто, uhm, HTML. –

+1

@pst: дело в том, что важна не сама функция, а возвращаемые ею элементы, потому что с ней вы действительно работаете.Что касается Java с использованием $, он выглядит много в форме $ {varname} (который действительно оригинален из сценариев оболочки unix), а не в самом языке, но в различных связанных форматах файлов, таких как ant-скрипты и весенние контексты приложений, а также в Язык выражения JSTL. –