RobertoCavali, сбавьте тон, это же основы, читайте теорию.
В JavaScript только функции создают свою область видимости переменных:
var x; // доступна везде
function f() {
var y; // доступна только внутри f
}
f();
Чтобы в глобальную область видимости не попали переменные, используемые только библиотекой, её полностью оборачивают в функцию, которую сразу же выполняют:
function f() {
var … // переменные, используемые только библиотекой
}
f();
В JavaScript есть несколько
видов функций. Для FunctionExpression не обязательно указывать имя функции, но чтобы интерпретатор воспринял её, как FE, нужно какое-то выражение, например присваивание:
var f = function () {
var … // переменные, используемые только библиотекой
};
f();
Но тут опять же в глобальной области видимости будет ненужная переменная f. Поэтому используют выражение группировки (скобочки), результатом выполнения которого будет ссылка на только что созданную анонимную функцию:
alert(typeof (function () {}))
которую можно сразу же вызвать:
(function () {
var … // переменные, используемые только библиотекой
})();
(alert)(1);
(function () { alert(2) })();
(function () { alert(3) }());
+function () { alert(4) }();