Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   непонятный вызов функции (https://javascript.ru/forum/misc/11072-neponyatnyjj-vyzov-funkcii.html)

hedgi 05.08.2010 11:37

непонятный вызов функции
 
Здравствуйте!
Читал статью о замыканиях, и встретил странный и непонятный мне способ объявления и вызова функции. вот он:
var fn = (function() {
   var numberOfCalls = 0;
   return function() {
      return ++ numberOfCalls;
   }
})()

Особенно смущает то, что переменной присваивается выражение в скобках, за которым следует "()", что обычно означает, что весь ранее записанный в скобках код - это имя функции.
Помогите разобраться, плз!
PS вот cтатья: http://habrahabr.ru/blogs/webdev/38642/

Gvozd 05.08.2010 11:46

function() {
   var numberOfCalls = 0;
   return function() {
      return ++ numberOfCalls;
   }
}

это функция, которая создает функцию, и возвращает ее
то же что вокруг - выполняет ее, и присваивает результат выполнения перменной fn

hedgi 05.08.2010 11:55

Спасибо большое! Теперь понятно!


Часовой пояс GMT +3, время: 13:33.