Почему функция, вызывающая себя, выдает ошибку, не заключая в скобки
У меня есть два фрагмента кода. Первый работает нормально, а второй дает ошибку.
var b = function abc() {
alert(a);
}()
Здесь я получаю сообщение с предупреждением.
function abc() {
alert(a);
}()
Здесь я получаю сообщение об ошибке."Uncaught SyntaxError: неожиданный токен)" Я использую браузер Chrome.
Снова следующее работает.
(function abc() {
alert(a);
})()
Какова цель заключающих в скобки?
1 ответ
Это должно, помимо прочего, предотвратить подъем, а также загрязнение глобальной области. Это также делается для явного указания синтаксическому анализатору ожидать выражения функции, а не объявления.
Статья в Википедии довольно информативна по этому вопросу.