(функция () {}) () объявление/инициализация функции JavaScript [дубликат]

7
задан Community 23 May 2017 в 12:16
поделиться

2 ответа

Основная цель самовыполняющейся анонимной функции - заключить все в частное пространство имен, то есть любые объявленные переменные не загрязняют глобальное пространство имен, в основном как песочница.

var test = 1;

test приведет к загрязнению глобального пространства имен, будет установлено window.test.

(function() {
    var test = 1; alert( test );
})();

window.test не определен, потому что он находится в нашей частной песочнице.

11
ответ дан 6 December 2019 в 12:48
поделиться

Это "защищает" глобальное пространство имен от загрязнения.

(function() {
  var something = "a thing";
  // ...
  if (something != "a thing") alert("help!");
  // ...
  function utility(a, b) {
    // ...
  };
  // ...
})();

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

Глобальное пространство имен - это ценный ресурс. Мы все должны осознавать его важность для себя и, особенно, для наших детей.

5
ответ дан 6 December 2019 в 12:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: