Синтаксис $.foo
означает, что $
рассматривается как объект с полем с именем foo
, которое обычно является функцией, которую вы вызываете. Так что на самом деле это ничем не отличается от автономной функции с именем foo
- просто с префиксом $.
, чтобы отличить ее от любой другой функции и связать ее с библиотекой jQuery.
Когда вы используете $(something).foo
, вы передаете something
в функцию jQuery, и результат зависит от того, что вы передаете (может быть селектором для поиска существующего объекта, или это может быть клочок HTML для создания нового объекта, или это может быть функция, которую нужно зарегистрировать для запуска при загрузке страницы). В любом случае вы затем вызываете foo
для полученного возвращенного объекта, который может быть применен к нескольким объектам DOM, если переданный селектор идентифицирует класс, например.
Первый синтаксис используется, когда функция jQuery работает не с объектами DOM (частями страницы HTML), а с другими объектами. Например, строка ($.trim
) или массив ($.each
). Это не элементы страницы, это просто чистые данные в JavaScript.
Второй синтаксис используется при работе с элементами DOM - вы используете $(something)
для создания объекта jQuery, который является оберткой вокруг нуля или более элементов DOM. Затем вы вызываете функции возвращаемой оболочки, чтобы удобно манипулировать объектами, которые она упаковывает.