Показать сообщение отдельно
  #5 (permalink)  
Старый 25.05.2011, 18:37
Новичок на форуме
Отправить личное сообщение для adamasantares Посмотреть профиль Найти все сообщения от adamasantares
 
Регистрация: 25.05.2011
Сообщений: 4

Блин, вот двоишник, два раза читал статью так и не запомнил что:

Функции - объекты

В javascript функции являются полноценными объектами встроенного класса Function. Именно поэтому их можно присваивать переменным, передавать и, конечно, у них есть свойства:

function f() {
...
}
f.test = 6
...
alert(f.test) // 6

Свойства функции доступны и внутри функции, так что их можно использовать как статические переменные.

Например,
function func() {
var funcObj = arguments.callee
funcObj.test++
alert(funcObj.test)
}
func.test = 1
func()
func()
В начале работы каждая функция создает внутри себя переменную arguments и присваивает arguments.callee ссылку на себя. Так что arguments.callee.test - свойство func.test, т.е статическая переменная test.
Ответить с цитированием