Вот ответ для тех, кто никогда не слышал о замыканиях слова:
Предположим, у нас есть функция
function sayHi() { alert('Hello'); }
Мы бы вызвали эту функцию следующим образом:
sayHi();
Выше указано то, что называется именованной функцией, если вы не знаете, что это значит, то это то, о чем вы думаете, когда слышите слово function
В некоторых языках вам не нужноНазовите функцию, вы можете оставить ее пустым, например, так:
alert('Sup');
function() {alert('Hello'); }
3 + 1;
alert('Peace');
Строка 2 совершенно корректна.Конечно, строка 2 ничего не сделает на вашей странице, точно так же, как строка 3 ничего не делает.Это называется анонимной функцией.Теперь, точно так же, как мы можем присвоить переменную строке 3, например:
result = 3 + 1;
Мы можем сделать то же самое со строкой 2, например:
myFunc = function() { alert('Hello'); };
И мы можем использовать myFunc какфункционировать как функция sayHi () раньше.Мы называем это так же, как мы называем sayHi ()
sayHi();
myFunc();
Теперь, поскольку javascript написан для универсальности, где такие вещи, как [0, 1, 2] .indexOf (1) работают, мы можем сделать следующее:
func = function() { alert('hello'); };
func();
(function() { alert('hello'); })();
И строки 1 и 2 будут выполнять то же самое, что и строка 3, поскольку строка 3 - это просто расширенная версия строк 1 и 2. Преимущество строки 3 состоит в том, что если кто-то позже вкод использует переменную func, это не вызовет проблем с вашим собственным кодом, также любые переменные, объявленные в функции строки 3 (с ключевым словом var), не будут допустимой переменной вне вашей функции, что в данном случае являетсязакрытие.
Ну вот и все для этого микро-учебника, надеюсь, это поможет.