Javascript 从内部函数返回外部函数

Javascript 从内部函数返回外部函数,javascript,Javascript,如您所见,当MyInnerFunction返回时,要执行的下一条语句是MyFunction的return语句。有没有办法消除所有这些返回语句,以便从MyFunction返回的语句在MyInnerFunction内部执行 谢谢。您可以重新格式化代码,以便您的if条件仅修改参数。 然后,您只需在最后使用正确的参数调用您的方法 function MyFunction () { if (SomeCondition) { MyInnerFunction(SomeParam);

如您所见,当
MyInnerFunction
返回时,要执行的下一条语句是
MyFunction
return
语句。有没有办法消除所有这些返回语句,以便从
MyFunction
返回的语句在
MyInnerFunction
内部执行


谢谢。

您可以重新格式化代码,以便您的if条件仅修改参数。 然后,您只需在最后使用正确的参数调用您的方法

function MyFunction () {

   if (SomeCondition) {

      MyInnerFunction(SomeParam);
      return;
   }   

   if (SomeOtherCondition) {

      MyInnerFunction(SomeOtherParam);
      return;
   } 

   if (SomeThirdCondition) {

      MyInnerFunction(AnotherParam);
      return;
   } 

   function MyInnerFunction(Param) {

      // Do some work here
      // HERE: I want return from MyFunction
   }
}

不,没有。你想要的是不可能的。内部功能无法控制外部功能。您可以使用
返回MyInnerFunction(另一个参数)。如果
,那么else如何?您在我的函数中还有其他代码吗?为什么不删除所有的
返回行?为什么不将返回值添加到调用函数的同一行(并确保内部函数不返回任何内容)?如果你真的想编写一些迟钝的代码来达到你想要的目的,而不遵循逻辑堆栈进程,你也可以滥用try/catch(显然不建议这样做,除非它真的有意义)。我同意@Prinzhorn,一个
else If
或一个
开关应该起作用。不,每个“If(条件)”即使在MyInnerFunction执行之后,语句仍然会被执行。我之所以有这些返回语句,是因为一旦MyInnerFunction执行,MyFunction将立即返回,其他if语句都不会被计算。为什么不希望执行这些条件?因为没有必要,只有一个条件会运行。如果,然后只执行一个,其他的跳过。
function MyFunction () {
   var params; 

   if (SomeCondition)
      params = SomeParam;
   else if (SomeOtherCondition)
      params = SomeOtherParam;
   else if (SomeThirdCondition)
      params = AnotherParam;

   MyInnerFunction(params);
}