Javascript - setTimeout未定义?

时间:2011-08-19 11:55:40

标签: javascript timer undefined settimeout

由于我无法理解的原因,以下功能似乎不起作用。

function timerTick()
{
    var t=setTimeout(timerTick,1000);
}

一切都应该有效,但是当我调用该函数时,控制台只是说“未定义”。

想法?

2 个答案:

答案 0 :(得分:3)

一切正常。你所看到的是timerTick本身的invokation的返回值,它本身没有return语句,返回值因此为undefined。 (局部变量t 自动返回!)

如果添加

console.log( "It's me. Again!" );
timerTick

并调用它,您将在控制台中按预期每秒看到它。

编辑:错误的代码和说明:未从控制台调用的函数的返回值,例如通过setTimeoutsetInterval,将不会打印到控制台。

答案 1 :(得分:0)

  

一切都应该有效,但是当我调用这个函数时,   控制台简单地说'未定义'。

     

想法?

可能是您过去将此代码导入控制台并按Enter键(例如,在Chrome中)? 在这种情况下,控制台说“未定义”。 如果你需要运行函数timerTick,请尝试下一步: 1)

function timerTick()
{
    console.info('i am called');
    var t=setTimeout(timerTick,1000);
}
timerTick();

或 2)

(function timerTick()
{
    console.info('i am called');
    var t=setTimeout(timerTick,1000);
})();