js中嵌套函数,内部函数怎么结束外部函数的调用?

代码如下

        function fn1() {
            function fn2() {
                function fn3() {
                    // 在这里结束函数fn1,应该怎么写呢?
                    console.log(1);
                }
                fn3()
            }
            fn2()
        }
        fn1()

想要在fn3的地方,直接结束fn1函数的调用

阅读 2.5k
2 个回答

其实当你 fn3() 的时候, fn1()已经接近尾声了,结不结束没什么差别了,除非你 fn3()或者 fn2()后面还有内容。
但是 fn3()后面的内容和 fn3 没有关系,正常情况下函数不应该直接干预外部的情况,虽然 JS 新手可能会这样写:

function enviroment(){
  var controll = false;

  (function fn3(){
    control = true;
  })();

  if(controll){
    return
  }
  // 一旦上面 return 了,之后的代码将不会被执行
  console.log('You\'ll not see me');
}

但这绝对不是什么好设计。

可以稍微改一下代码, 如果 fn2 返回 true,执行剩下的代码;返回 false, 怎什么都不做

function fn1() {
    function fn2() {
        function fn3() {
            // 在这里结束函数fn1,应该怎么写呢?
            return false;
            console.log(1);
        }
        return fn3()
    }
    if (fn2()) {
       // 其他代码
    }
}
fn1()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏