调用栈

Posted wuxianqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用栈相关的知识,希望对你有一定的参考价值。

引擎由两个主要组件组成:
*内存堆 - 这是内存分配发生的地方
*调用堆栈 - 这是您的代码执行时堆栈帧的位置、

技术分享图片

事件循环回调队列

技术分享图片

javascript是一种单线程编程语言,这意味着它只有一个Call Stack。因此,它可以一次做一件事。

 

调用栈是一种数据结构,它基本上记录了程序中的位置。如果我们进入函数,我们将它放在堆栈的顶部。如果我们从函数返回,我们会弹出堆栈的顶部。这就是所有堆栈都可以做到的。

 

 

我们来看一个例子吧。看一下下面的代码:

1 function multiply(x, y) {
2     return x * y;
3 }
4 function printSquare(x) {
5     var s = multiply(x, x);
6     console.log(s);
7 }
8 printSquare(5);

当引擎开始执行此代码时,调用堆栈将为空。之后,步骤如下:

技术分享图片

调用堆栈中的每个条目称为堆栈帧

这正是抛出异常时堆栈跟踪的构造方式 - 它基本上是异常发生时调用堆栈的状态。看一下下面的代码:

 1 function foo() {
 2     throw new Error(‘SessionStack will help you resolve crashes :)‘);
 3 }
 4 function bar() {
 5     foo();
 6 }
 7 function start() {
 8     bar();
 9 }
10 start();

 

以上是关于调用栈的主要内容,如果未能解决你的问题,请参考以下文章

回栈事务后如何持久化分片数据?

如何从片段中调用 getSupportFragmentManager()?

如何从片段 KOTLIN 中调用意图 [重复]

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

从片段调用 Google Play 游戏服务

使用意图从另一个片段调用一个片段