JavaScript - как перезапустить функцию изнутри? - PullRequest
2 голосов
/ 31 мая 2010

Как перезапустить функцию, вызывающую ее из той же функции?

Ответы [ 3 ]

8 голосов
/ 31 мая 2010

Просто снова вызовите функцию, затем вернитесь, как здесь:

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

Часть if необязательна, конечно, я не уверен в вашем точном приложении здесь. Если вам нужно возвращаемое значение, это одна строка, например: return myFunction();

3 голосов
/ 31 мая 2010

Хорошо, теперь рекомендуется использовать именованную функцию вместо arguments.callee, которая все еще действует, но в будущем кажется устаревшей.

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

// Anonymous function using the future deprecated arguments.callee
(function() {
    // Call again
    arguments.callee();
)();
1 голос
/ 31 мая 2010

Вы имеете в виду рекурсию?

function recursion() {
    recursion();

}

или

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

Примечание Использование этой названной анонимной функции не рекомендуется из-за давней ошибки в IE. Спасибо жаворонкам за это.

Конечно, это всего лишь пример ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...