Зачем библиотеки обертывают в (function() {…})()?

199
02 мая 2018, 04:53

Зачем библиотеки обертывают в (function() {...})()? Объясните простыми словами, сколько ни читаю - ничего не понятно.

Answer 1

Что бы иметь внутри локальные переменные, недоступные извне:

Например, в примере ниже

var libraryCache = {};
library.method1 = function () {
   libraryCache.data = {};
};
library.method2 = function () {
   libraryCache.data2 = {};
};

libraryCache доступна любому коду извне, так как она добавляется в глобальный скоп. Если написать так:

(function () {
    var libraryCache = {};
    library.method1 = function () {
       libraryCache.data = {};
    };
    library.method2 = function () {
        libraryCache.data2 = {};
    };
})();

То мы "скроем" переменную от внешнего кода.

Answer 2

(function() { 
 console.log("test"); 
})();

function() { 
 console.log("test"); 
}();

READ ALSO
Кастомный балун для карты

Кастомный балун для карты

Всем приветЗадача такая

184
Ошибка с шифром Виженера - JavaScript

Ошибка с шифром Виженера - JavaScript

Делаю шифр ВигенаЯ не могу понять почему при введении ключа и нажатия шифрования или расшифрования срабатывает alert("Ключ не содержит буквы");

259
Не работает код вставки изображения на fabric.js

Не работает код вставки изображения на fabric.js

Имеется код из офф документации fabricjs

216