【问题标题】:Does javascript creates a execution context for every function?javascript 是否为每个函数创建一个执行上下文?
【发布时间】:2020-03-27 12:27:02
【问题描述】:

我正在看一门课程,教授提到每次我们执行我们自己创建的函数时都会创建一个本地执行上下文(他没有确切地说,但是当他解释像 setTimeOut 这样的外部函数时他没有提到这一点或fetch)。然而,当我们调用一个外部函数(如setTimeOutfetch)时会发生什么,javascript 是否也会为这些函数创建一个本地执行上下文?我所说的外部函数是指不是我们自己创建的函数,而是 API 的一部分。

【问题讨论】:

    标签: javascript function execution


    【解决方案1】:

    大多数 javascript 外部函数实际上是用 C 编写的,因此它们本身没有 javascript 执行上下文。但是,它们仍然有 a stack frame,这类似于 javascript 执行上下文。

    【讨论】:

    • 因此,例如,当我调用setTimeOut 时,此函数与 javascript 无关,而只是用于在浏览器中触发计时器的 api,因为浏览器将执行计时器,它就在那里创建执行上下文(堆栈帧)?
    • 浏览器实现setTimeout函数,通常在C语言中,没有javascript的执行上下文。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多