从它调用的函数中中止外部函数

时间:2011-01-03 04:23:01

标签: javascript function closures

是否可以让youthbox内返回/停止执行?直接,不是像:

function youth(){
  var check = true;

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

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

(其中有一个check变量box更改)

1 个答案:

答案 0 :(得分:8)

不,你不能,除非你从内部函数抛出一个异常(但这并不算作“返回”,并且它不是一个真正好的设计模式)。

允许函数使其调用者返回一个值是没有意义的,因为调用函数甚至可能不会在同一个上下文中声明 - 也许它是一些接受函数参数的其他函数,并且通过了-in函数不应该能够修改被调用函数的行为。