Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   динамическое содержимое функции (https://javascript.ru/forum/misc/17662-dinamicheskoe-soderzhimoe-funkcii.html)

alfmaster 28.05.2011 16:28

динамическое содержимое функции
 
Привет всем. Столкнулся с такой интересной вещью:хочу написать скрипт с динамическим содержанием функции. Чтобы было понятен смысл, приведу такой код:
//<![CDATA[
var c=0;
function op() {
document.getElementById('a').innerHTML+=c;
++c;
timer = setTimeout("op()", 100);
if(c>10) { clearTimeout(timer); }
}
function init() {
timer = setTimeout("op()", 100);
}
window.onload=init;
//]]>

смысл кода-постепенное появление цифр, запускается через таймер.

Но появилась мысль в функции setTimeout написать динамический код (например выбор функции которую запускать).
var str="\"op()\",100";
timer = setTimeout(str);


Возможно это уже много раз обсуждалось, но все равно спрошу.
Допустим ли такой вызов функции или ни в коем случае нельзя так делать?

monolithed 28.05.2011 16:48

Цитата:

Сообщение от alfmaster
Допустим ли такой вызов функции или ни в коем случае нельзя так делать?

так делать нельзя, потому что каждый раз вызывается eval()

можно так:
function foo() {
    //[...]
}
setTimeout(foo, 100);

так:
setTimeout(function(){
    //[...]
}, 1000);

либо так:
(function() {
      //[...]
      setTimeout(arguments.callee, 100);
}());

alfmaster 28.05.2011 17:10

ну по сути это самый простой вызов функции, он и так понятен))


Часовой пояс GMT +3, время: 12:43.