Какова роль скобок в следующем фрагменте кода? - PullRequest
5 голосов
/ 30 мая 2010

Это код отслеживания для Google Analytics:

var _gaq = _gaq || [];
_gaq.push(["_setAccount", "UA-256257-21"]);
_gaq.push(["_trackPageview"]);

(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);
})();

Вы можете видеть, что функция находится в скобках.

Почему ты так думаешь?

Ответы [ 2 ]

11 голосов
/ 30 мая 2010

Это анонимная функция, которая определяется и вызывается немедленно. Он не может быть вызван извне, поскольку у него нет имени. Все переменные внутри будут ограничены анонимной функцией. Это можно использовать для некоторой обработки глобальной области, не добавляя в нее новых членов.

2 голосов
/ 30 мая 2010

Это так называемая лямбда-функция . Как видите, он не имеет имени и сразу вызывается с помощью скобок в конце строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...