如何在javascript中使用return

如何在javascript中使用return,javascript,function,return,Javascript,Function,Return,如何在javascript中使用return function hello1() { function hello2() { if (condition) { return; // How can I exit from hello1 function not hello2 ? } } } 您不应该使用内部函数来控制程序流。具有内部功能的能力促进了范围上下文和可访问性 如果您的外部函数依赖于其内部函数进行某些逻辑,

如何在javascript中使用return

function hello1() {

    function hello2() {

        if (condition) {
            return; // How can I exit from hello1 function not hello2 ?
        }

    }

}

您不应该使用内部函数来控制程序流。具有内部功能的能力促进了范围上下文和可访问性


如果您的外部函数依赖于其内部函数进行某些逻辑,只需使用其返回值就可以相应地进行操作。

您不能这样做。这不是
return
的工作方式。它仅从当前函数退出

能够从调用堆栈更上层的函数返回将破坏函数提供的功能(即,它不需要知道从何处调用它,并且应该由调用方决定如果函数失败该怎么做)。函数的一部分要点是调用方不需要知道函数是如何实现的

您可能想要的是这样的:

function hello1() {
    function hello2() {
        if (condition) {
            return false;
        }
        return true;
    }

    if (!hello2()) {
        return;
    }
}

像那样跳起来可能是个坏主意。你可以做一个例外。我们在一个工作点控制执行流,因为对于一些设计糟糕的代码来说,这是一个简单的解决方法。

你的意思是退出hello2而不是hello1我想这取决于你如何调用hello2,hello2只有在你从hello1返回一个对象后才能执行。我认为您必须发布一个更准确的示例来说明您试图完成的任务,而不是一个伪问题。即使有例外,也要由调用堆栈中更高级别的函数之一来处理。这将要求对
hello1
的每个函数调用都包装在
try…catch
块中。。。有点乱;-)