4

如何重新启动从同一函数内部调用它的函数?

4

3 回答 3

11

只需再次调用该函数,然后返回,如下所示:

function myFunction() {
  //stuff...
  if(condition) {
    myFunction();
    return;
  }
}

当然,这if部分是可选的,我不确定您在这里的确切应用。如果您需要返回值,则为一行,如下所示:return myFunction();

于 2010-05-31T00:42:17.907 回答
3

好吧,它建议现在使用命名函数而不是 arguments.callee,它仍然有效,但将来似乎不推荐使用。

// Named function approach
function myFunction() {
    // Call again
    myFunction();
}

// Anonymous function using the future deprecated arguments.callee
(function() {
    // Call again
    arguments.callee();
)();
于 2010-05-31T00:42:55.503 回答
1

你的意思是递归?

function recursion() {
    recursion();

}

或者

var doSomething = function recursion () {
     recursion();   
}

注意不建议使用这个命名的匿名函数,因为 IE 中存在一个长期存在的错误。感谢云雀

当然这只是一个例子……

于 2010-05-31T00:42:30.187 回答