立即触发setInterval内的匿名函数

时间:2010-12-20 19:17:32

标签: javascript anonymous-function setinterval

所以我有一个看起来像这样的计时器

my_timer = setInterval(function(){
    do_something_amazing();
    do_more.stuff_here();
    var etc_etc = "foo" + bar;
}, 1000);

我希望它立即运行,之后每秒运行一次。我尝试将appending()附加到函数的末尾,但这导致它只运行一次(因为它没有将函数本身返回到setInterval?)。然后我尝试return this;以便它可能会返回函数本身,但这也没有好处。这是随机的猜测。

有没有办法在不创建命名函数的情况下让它工作?谢谢!

3 个答案:

答案 0 :(得分:5)

使用arguments.callee

my_timer = setInterval((function(){     
    do_something_amazing();     
    do_more.stuff_here();     
    var etc_etc = "foo" + bar;
    return arguments.callee; 
})(), 1000); 

答案 1 :(得分:3)

这在技术上并不创建任何命名的函数,但我不确定你为什么要这样做:

(function(func) {
    func();
    setInterval(func, 1000);
})(function() {
    do_something_amazing();
    do_more.stuff_here();
    var etc_etc = "foo" + bar;
});

答案 2 :(得分:2)

这对你有用吗?

function startItUp()
{
   bla();
   setInterval( bla, 1000);
}

function bla()
{
    do_something_amazing();
    do_more.stuff_here();
    var etc_etc = "foo" + bar;
}

希望这有帮助,