Javascript 重新启动匿名函数

Javascript 重新启动匿名函数,javascript,Javascript,我正在尝试重新启动一个匿名函数。如果这个函数有一个名称,我可以调用它,例如: function myFunction(){ if(false){ myFunction(); } } 但是,这种情况不适用于: function(){ if(false){ ??? // Perhaps use a "this". Not sure. } } 提前感谢您的帮助 显而易见的解决方案是只给匿名函数起一个名字。但是,既然你似乎知道这一点,

我正在尝试重新启动一个匿名函数。如果这个函数有一个名称,我可以调用它,例如:

function myFunction(){
    if(false){
      myFunction();
    } 
}
但是,这种情况不适用于:

function(){
    if(false){
        ???  // Perhaps use a "this". Not sure. 
    }
}

提前感谢您的帮助

显而易见的解决方案是只给匿名函数起一个名字。但是,既然你似乎知道这一点,我就认为你做不到。因此,您可以将一个命名的局部函数放入其中并调用:

function() {

    function run() {
        if(some condition){
            // call this again in 1 second
            setTimeout(run.bind(this), 1000);
        }
    }

    run.call(this);
}
如果函数中未使用此的值,则可以将其简化为:

function() {

    function run() {
        if(some condition){
            // call this again in 1 second
            setTimeout(run, 1000);
        }
    }

    run();
}

所以给它起个名字。。。