如何在javascript中使用return
function hello1() {
function hello2() {
if (condition) {
return; // How can I exit from hello1 function not hello2 ?
}
}
}发布于 2010-12-08 01:02:32
你不能,这不是return的工作方式。它只从当前函数中退出。
能够从调用栈上更高的函数返回将破坏该函数提供的encapsulation (即,它不需要知道它是从哪里被调用的,它应该由调用者决定如果该函数失败了该怎么做)。函数的部分意义在于调用者不需要知道函数是如何实现的。
您可能需要的内容如下所示:
function hello1() {
function hello2() {
if (condition) {
return false;
}
return true;
}
if (!hello2()) {
return;
}
}发布于 2010-12-08 01:02:00
你不应该使用内部函数来控制程序流。拥有内部函数的能力提高了上下文的作用域和可访问性。
如果您的外部函数依赖于其内部函数来执行某些逻辑,则只需使用其返回值进行相应处理即可。
发布于 2010-12-08 01:05:36
像这样往上跳可能不是个好主意。您可以使用一个异常来完成此操作。我们在工作中像这样控制执行流程,因为这是对一些设计不佳的代码的简单解决方案。
https://stackoverflow.com/questions/4379359
复制相似问题