Использование 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, если это имеет какое-либо значение.