从被调用的函数中终止外部函数

4

如何在 box 中直接使 youth 返回或停止执行?不是类似以下的方式:

function youth(){
  var check = true;

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

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

(其中有一个名为“check”的变量,它会随着“box”的改变而改变)

你能明确你想要实现什么吗?并引用真实的代码吗? - ts.
3
@difitalFresh,我修改了您的帖子标题,以更好地概括您的问题。如果我犯了错误并没有正确地概括,请修改它并教训我。 - Phrogz
1个回答

8

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

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


谢谢,我只是想确保我没有错过任何重要的想法,使我的代码看起来像那样。 - tcooc
@digitalFresh:函数的返回值总是可以用来完成这个任务。例如,内部函数可以返回true,如果它想要继续执行;然后你只需要写if (!box()) { return; } - cdhowie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接