jsjob, функции в javascript являются объектами. К ним можно добавлять свойства и методы.
Пример:
function newfunc() {};
newfunc.x = 1;
newfunc.y = 2;
newfunc.someMethod = function () { return this.x + this.y }
Они будут доступны с объекта данной функции. Пример
newfunc.someMethod(); // => 3
newfunc.x = 10;
newfunc.y = 11;
newfunc.someMethod(); // => 21
Они доступны как для чтения так и для записи. Недоступными для записи их можно сделать с помощью замыканий или введенных в ECMAScript 5 атрибутов свойств.
Хотя с замыканием ничто не помешает сделать так:
newfunc.closure();
newfunc.closure = function() { 'Ха-ха. Я злобный хакер!'}
Это могут исправить атрибуты свойств, но они не доступны повсеместно