Я создал это на основе кода из лекции Дуга Крокфорда. .
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
Что довольно круто, поскольку он выполняет дорогостоящую настройку только один раз, а каждый последующий вызов - дешевый чек.
Однако я не могу расшифровать код, который это делает. В частности, я не могу понять, зачем мне нужен "()" в конце объявления функции.
Может кто-нибудь объяснить, как работает этот синтаксис?