Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Что за синтаксис (https://javascript.ru/forum/misc/17610-chto-za-sintaksis.html)

Arkasha69 25.05.2011 22:01

Что за синтаксис
 
Подскажите, пожалуйста, что это за синтаксис, когда строка начинается со скобки, внутри код, а после закрывающейся скобки еще две скобки? Например, как у Google Analitycs
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

Kolyaj 25.05.2011 22:13

На этом форуме десяток подобных вопросов.

Arkasha69 26.05.2011 14:54

Куда тыкнуться, что искать?

poorking 26.05.2011 15:15

Arkasha69,
Создается безымянная функция, ссылка на которую никуда не сохраняется. И тут же вызывается (скобки в конце), делают так, например, чтобы выделить локальную область переменных



( function(){

var a = "hello";
alert(a);

}() );

//или выделить конкретный какой-то контекст, для удобства

( function(){ alert(this); }.call(document) );


В данном случае скобки вокруг нужны, чтобы выделить выражение, чтобы не произошло объявление именной функции которое начинается со слова function, потом идет имя и т.д., которое в свою очередь вызовет ошибку, так как имени нет.
в общем счете это то же что и

var a = function(){
     var a = "hello"; 
     alert(a);
}
a();


только ссылка на эту функцию не сохраняется

http://javascript.ru/basic/functions

Arkasha69 26.05.2011 16:13

Спасибо. Пошел "рости" дальше.


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