javascript setTimeout();不';不能在linux(firefox)上工作

javascript setTimeout();不';不能在linux(firefox)上工作,javascript,linux,firefox,animation,settimeout,Javascript,Linux,Firefox,Animation,Settimeout,我正在制作一个动画,它使用setTimeout();函数。该动画在chrome、firefox甚至我的智能手机上都能很好地运行。唯一的问题是ubuntu上的firefox 控制台给我一个错误: ReferenceError: loop is not defined @ file:///home/nigga/GitHub/imgdrop/imgdrop.js:45 守则: function loop() { regenerate(); animate(); setTim

我正在制作一个动画,它使用setTimeout();函数。该动画在chrome、firefox甚至我的智能手机上都能很好地运行。唯一的问题是ubuntu上的firefox

控制台给我一个错误:

ReferenceError: loop is not defined @ file:///home/nigga/GitHub/imgdrop/imgdrop.js:45
守则:

function loop()
{
    regenerate();
    animate();

    setTimeout("loop()", 1000/fps);
}

编辑:

我尝试了@LOL建议的方法,该方法在linux上有效,但在windows(firefox和IE)上无效


也许firefox缓存了你的脚本?为什么要创建一个匿名函数,它除了调用另一个没有参数的函数外什么都不做?@LOL-好吧,你不是把它当作闭包,你可以直接使用
循环
函数作为参数。@Quentin我一直在尝试这个方法,效果很好。你想说我必须使用
setTimeout(loop();,1000)嗯,是的,它工作得很好,只是需要比需要做更多的工作,并且会使代码变得更难阅读。否,它调用
循环
,并将其返回值传递给
设置超时
<代码>设置超时(循环,1000)
function loop()
{
    regenerate();
    animate();
setTimeout(function() {loop();}, 1000);
}
function loop()
    {
        regenerate();
        animate();
    setTimeout(loop, 1000);
    }