Отмена внешней функции из вызываемой ею функции - PullRequest
4 голосов
/ 03 января 2011

Можно ли сделать youth возврат / остановку выполнения из box? Напрямую, а не что-то вроде:

function youth(){
  var check = true;

  function box(){
    //code
    check = false;
  }

  //code
  while(check){
    //code;
  }
  return false;    
}

(где есть переменная check, которая изменяется box)

1 Ответ

8 голосов
/ 03 января 2011

Нет, вы не можете, если вы не выбросите исключение из внутренней функции (но это на самом деле не считается "возвращением", и в любом случае это не очень хороший шаблон проектирования).

Не имеет смысла разрешать функции, чтобы ее вызывающая сторона возвращала значение, так как вызывающая функция может даже не быть объявлена ​​в том же контексте - возможно, это какая-то другая функция, которая принимает аргумент функции и передана -в функции не должно быть в состоянии изменить поведение вызываемой функции.

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