Сообщение от Riim
|
То, что так задумано мне ясно, не ясно зачем.
|
Что не ясно "зачем"? Почему, оператор группировки всегда внутри себя содержит выражение? Грамматика такая. А что ещё, по Вашему, он там может содержать?
Касательно же функций (и изначального вопроса) - не обязательно функцию оборачивать в скобки, чтобы иметь возможность запустить. Например, здесь нет никаких скобок, но функция запускается:
var a = {
b: function () {
return 10;
}()
};
alert(a.b); // 10
Почему? Потому что парсер уже распознал функцию как FE. В случае же описания в начале темы - есть неоднозначность - путаница с FD, поэтому парсер выдаёт ошибку. Когда же мы помещаем её в оператор группировки, внутренности которого всегда являются expression'ом (а что ещё, по Вашему, там может быть?
), парсер однозначно определят функцию, как FE, и выполняет.