Показать сообщение отдельно
  #3 (permalink)  
Старый 04.12.2010, 18:19
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от KBEPT
Есть фрагмент javascript-кода:
var code_str = "func_1 = function() { alert('in'); } alert('out'); ";
eval(code_str);
В этом примере метод eval() получает строку строковую переменную
Здесь же, вызывает alert(), что вполне логично.
Сообщение от KBEPT
var code_str = "func_1 = function() { alert('in'); } \n alert('out'); ";
eval(code_str);
аналогично будет:
var code_str = "func_1 = function() { alert('in'); }; alert('out'); ";
eval(code_str);

А для того чтобы вызвать первую функцию ее нужно определить, а затем вызвать:
var code_str = "func_1 = function() {alert('in'); }; func_1(); alert('out'); ";
eval(code_str);

Поэтому правильней и проще всего так:
eval("(function(){alert('in')})(); alert('out')");

Последний раз редактировалось monolithed, 04.12.2010 в 18:22.
Ответить с цитированием