Как мне прочитать синтаксис закрытия Javascript?

Я создал это на основе кода из лекции Дуга Крокфорда. .

var isAlphaUser = (function() {
    alert("Forming Alpha User List");
    let AlphaUsers = {
        1234: true,
        5678: true
    };

    return function(id){
        alert("Checking Alpha Users:",id); 
        return AlphaUsers[id];};
}());

alert("starting");
alert(isAlphaUser(1234));
alert(isAlphaUser(5678));
alert(isAlphaUser(3456));

что дает мне следующее:

Forming Alpha User List
starting
Checking Alpha Users: 1234
true
Checking Alpha Users: 5678
true
Checking Alpha Users: 3456
undefined

Что довольно круто, поскольку он выполняет дорогостоящую настройку только один раз, а каждый последующий вызов - дешевый чек.

Однако я не могу расшифровать код, который это делает. В частности, я не могу понять, зачем мне нужен "()" в конце объявления функции.

Может кто-нибудь объяснить, как работает этот синтаксис?

5
задан deworde 14 July 2011 в 17:10
поделиться