Использование eval для выполнения функций

Есть кое-что, чего я не делаюне понимаю, как работает eval. Предположим, у меня есть функция foo:

function foo() {
    console.log("test");
}

А потом я пишу

eval("foo()");

или же

eval("foo" + "();");

Функция foo выполнена и у меня естьтестовое задание" распечатанный. Однако, если я напишу:

eval("function foo() { console.log(\"foo\"); }();");

или же

eval("function foo() { console.log(\"foo\"); }" + "();");

Я получил "SyntaxError: Неожиданный токен) ", Это почему? Я увидел, что когда я передаю имя функции, оно вычисляется в функциикод, так что я думаю, что этодолжен быть таким же, как "Eval (»foo "+"();»);"Я'

м, используя Chrome 27, если это имеет какое-либо значение.

Ответы на вопрос(6)

Ваш ответ на вопрос