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(另一个参数)改为code>。如果
,那么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);
}