Как реализовано можно
посмотреть. Немного анализа и все вопросы отпадут.
Там можно вызвать функцию как объект, и обратиться к его свойствам
В
JavaScript это не возбраняется и повсеместно используется:
function foo() {
console.log('foo');
}
foo.bar = function() {
console.log('bar');
}
foo(); // foo
foo.bar(); // bar
Но так же есть и обращение к функции с параметрами
Обращение не к функции, а к результату выполнения функции.
$() - это вызов функции. Простой пример:
function $(arg1, arg2, arg3) {
return [arg1, arg2, arg3];
}
var result = $(1, 2, 3).map(function(el) {
return el * el;
});
console.log(result); // [1, 4, 9]