关于javascript执行上下文堆栈
天蓬老师
天蓬老师 2017-04-11 12:39:15
0
2
279

程序开始后,进入全局上下文,将Global EC push到堆栈底部,执行函数1时,进入函数上下文EC1,并将EC1 push到堆栈中,假如函数1很耗时,函数1没有执行完毕的时候调用了函数2,函数2会push进栈吗?

fun1();//耗时 fun2();

比如下图,如果context n+1先执行完了,他上面有context n+2挡,context n+1怎么pop出栈?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆 (2)
大家讲道理

你这问题问的真是奇怪……
先说一点:JS是单线程的

  1. 你所谓调用函数2是怎么调用的?是在函数1内部代码调用的?还是说你是认为像是事件或者是异步回调调用了它?
    如果是在函数1内部代码本身就调用了函数2,那么这时候程序进程肯定是进入了函数2里面去,如果是后者,那么函数2将会等待当前函数1执行完毕再执行。

  2. 导致栈里既有函数1又有函数2。
    这有什么问题吗?很难以理解吗?我不懂你在疑惑什么……

  3. 函数1没有执行完毕的时候调用了函数2,哪个会先执行完。
    这个问题同1

    Ty80

    你画的图只适用于同步的函数调用,对于异步的方法,你可以查查js的异步机制。

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!