Вход

Просмотр полной версии : не обычная функция


ild
28.12.2014, 23:21
(function() {

})();


Привет всем. Разбираю чужой код, есть функции такого типа. Не могу понять, как он работает. Как она вызывается из другого места (ведь имени нету). Если она просто исполняется, зачем такая обертка?

рони
28.12.2014, 23:24
ild,
слабо найти несколько ответов на ваш вопрос на форуме и разместить эти ссылки.

InfoDusha
28.12.2014, 23:24
FAQ (http://javascript.ru/forum/misc/9459-chavo-chasto-zadavaemye-voprosy-faq.html):
9. Что означает выражение (function(){...})() или (function () { ... }()) ? или +function(){}
Это создание анонимной ф-ции и её немедленный вызов.

ild
28.12.2014, 23:30
а смысл писать

(function(){ alert(10); })() //10

если в том же месте просто можно

alert(10);

рони
28.12.2014, 23:36
ild,
http://javascript.ru/forum/misc/1279-ne-ponyatnaya-konstrukciya-v-js.html#post2900

Safort
28.12.2014, 23:41
ild,
это самовызывающаяся анонимная супермега функция. Нужна для того, чтобы не засорять область видимости своими переменными. Ну и по ссылкам выше тоже пройдись)

ild
28.12.2014, 23:41
спасибо, теперь ясно. Да, там и понял