Это часто используется, чтобы гарантировать, что все переменные, используемые в коде принимает значения из этого фрагмента кода только - локальная область видимости. Они игнорируют переменные, определенные вне фрагмента.
var a = 10;
(function() {
alert(a); // undefined
var a = 5;
alert(a); // 5
})();
Другой ее основное назначение заключается в обеспечении код будет работать в одной библиотеке JavaScript (например, JQuery), даже при наличии нескольких библиотек (например, Prototype, Mootools), которые используются на этой странице. Вы бы сделать что-то вроде ...
(function($) {
alert('test');
// You can now use the jQuery $ in here
// And not worry about the Prototype $ being used instead
})(jQuery);
Пропустив jQuery
объект в функцию, он получает локальную переменную сферу имени $
, которая будет иметь приоритет над глобальной областью действия прототип $
(который имеет доступны совершенно разные методы).
+1 для связанной статьи. Очень информативно. – MTLPhil