034|JavaScript函数调用栈

函数调用函数

在前面的课程中,我们每一次的函数调用都是在全局作用域中调用。那么,函数可以调用函数吗?

答案是可以的。下面先看一下一个函数调用其它函数的例子:

function funcA()
{
    console.log("this is funcA");
    funcB() // 调用函数B
}

function funcB()
{
    console.log("this is funcB");
}

funcA();

上述代码中,函数A体内调用了函数B。我们来看一下输出结果:

034|JavaScript函数调用栈_第1张图片
运行结果

可以看到,funcA、funcB都被成功调用了。所以,一个函数是可以调用另外一个函数的。

一个函数调用自身的技术叫做递归。递归技术将在后续课程介绍。

函数调用栈

当一个函数调用另一个函数时,就形成了函数调用栈。

还记得栈吗?上一节刚学完。

比如,下面下面的代码:

function funcA()
{
    console.log("this is funcA")
    funcB();
}
function funcB()
{
    console.log("this is funcB")
    funcC();
}
function funcC()
{
    console.log("this is funcC") // 倒数第三行
}
funcA()

上述代码中,funcA会调用funcB,然后funcB又会调用funcC。那么就形成了[funcA,funcB, funcC]的调用栈,我们通过下图来辅助理解:

034|JavaScript函数调用栈_第2张图片
函数调用栈

其处理过程和上一节中的栈是一模一样,这里就不再重复了。

好了,调用栈的知识讲完了。调用栈是程序设计中非常重要的概念,希望你能掌握好它。

什么是绑定函数?
什么是构造函数?
什么是闭包?

请继续关注我的课程,我将在后续课程中为大家解答上述问题。

想学计算机技术吗?需要1对1专业级导师指导吗?想要团队陪你一起进步吗?欢迎加我为好友!

034|JavaScript函数调用栈_第3张图片
我的微信

你可能感兴趣的:(034|JavaScript函数调用栈)