函数内部的函数,如何退出main函数

时间:2013-10-16 11:08:42

标签: javascript jquery

如果我在从另一个函数内部调用的函数中,如何退出main / parent函数?

E:

function(firstFunction(){
    //stuff
    secondFunction()
    // stuff if second function doesnt exit
}

function secondFunction(){
    if( // some stuff here to do checks...){
        /***** Exit from this and firstFunction, i.e stop code after this function call from running ****/
    }
}

4 个答案:

答案 0 :(得分:2)

其他答案显然是正确的,但我会略有不同,这样做......

function firstFunction() {
    if (secondFunction()) {
        // do stuff here
    }
}

function secondFunction() {
    if (something) {
        return false;  // exit from here and do not continue execution of firstFunction
    }
    return true;
}

这只是编码风格的不同意见,并且与最终结果没有区别。

答案 1 :(得分:1)

您可以返回一些值,表示您要退出firstFunction()

e.g。

function(firstFunction(){
    //stuff
    rt = secondFunction()
    if (rt == false) {
        return; // exit out of function
    }
    // stuff if second function doesnt exit
}

function secondFunction(){
    if( // some stuff here to do checks...){
        /***** Exit from this and firstFunction, i.e stop code after this function call from running ****/
        return false;
    }
    return true;
}

答案 2 :(得分:1)

您无法直接将控制流返回堆栈两步。但是,您可以从内部函数返回一个值,然后在外部处理。像这样:

function(firstFunction(){
    var result = secondFunction()
    if (!result) 
        return
}

function secondFunction(){
    if( /* some stuff here to do checks */ ){
        return false;
    }
    return true;
}

答案 3 :(得分:1)

你应该做这样的回调:

function firstFunction () {
  secondFunction(function () {
    // do stuff here if secondFunction is successfull
  });
};

function secondFunction (cb) {
  if (something) cb();
};

这样你就可以像在ajax等中那样在secondFunction中做异步的东西。