setInterval具有自执行功能

Afs*_*ani 2 javascript setinterval

我想立即第一次运行我的功能(没有超时)所以我这样做:

setInterval(function(){
    alert("Boo");
}(), 1000);
Run Code Online (Sandbox Code Playgroud)

该功能在第一次执行但在下一个时间间隔内没有任何反应.为什么?

jAn*_*ndy 5

更好的问题是,你究竟想要实现什么目标?

你没有return任何来自自调用函数的东西,所以它将undefined隐式返回值,并将其传递给setTimeout.在初始调用之后,该行看起来像

setInterval(undefined, 1000); 
Run Code Online (Sandbox Code Playgroud)

这显然没有意义,也不会继续打电话.

您需要return从自调用函数到另一个函数,或者只是不使用自调用函数并只是传递函数引用.


更新:

你更新了你的问题.如果你想在init上运行一次"函数"并在之后使用它,你可以做类似的事情

setInterval((function() {
    function loop() {
        alert('Boo');
    };

    loop();
    return loop;
}()), 1000);
Run Code Online (Sandbox Code Playgroud)