Но я для интереса написал функцию и вывел ее:
...
но никакого обьекта я не увидел там
Проблема исключительно того, как браузер показывает вывод console.log. Стандарта нет и разные браузеры показывают то, что их разработчики посчитали полезным/удобным. Попробуйте лучше
console.dir(function() {})
.
В отличие от примитивных значений, в функцию можно добавить свои поля.
function a () {};
a.b = 42;
console.log(a.b);
Функции передаются по ссылке.
У функций есть методы, например
bind,
apply и
call.
Функция это специальный объект, у которого определен внутренний метод
[[Call]].