Функция - это объект, а у любого объекта могут быть свойства, главное не путайте с примитивами (числа, строки, логические, undefined, null (хотя почему то typeof null == "object" Оо)), они хоть и могут трактоваться как объект, но свойства иметь не могут (пользовательские).
var a = new String("Вася");
a.prop = "Свойство"; // Всё ок
var b = "Вася";
b.prop = "Свойство"; // Ошибочка
Но, как я говорил выше, что примитивы могут трактоваться как объекты, то такая запись вполне справедлива:
var a = "Вася";
a.replace("а", "о"); // используем метод для примитива
или даже так:
var a = "Вася".replace("a", "о");