微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

'global' 是 Javascript 中的一个函数吗?

如何解决'global' 是 Javascript 中的一个函数吗?

我正在努力学习 Javascript 中的闭包是什么。 根据 MDN,每次创建函数时都会在创建函数时创建闭包。 但是Stack Overflow很多文章和回答都说闭包的概念需要内部函数和外部函数及其变量的关系。 所以,我想知道“全局”是否是一种在全局范围(或​​全局执行上下文)运行时执行的函数。 如果“全局”是一个函数,我猜脚本中的所有函数都可能是内部函数。 如果您完全理解闭包和执行上下文,请回答我。谢谢!

解决方法

你的问题是一个非常真实的问题:)。我从您的问题中得到的是,您的困惑在于 JavaScript 中的“全局”。从您的问题中不清楚您是否需要闭包和执行上下文方面的帮助,因此为了保持答案简短,我将只关注“全局”。

JavaScript 中的 global 是全局执行上下文。它更像是运行代码的编译器。 如果您有任何编程语言的经验,请说 Java。你可能与此有关。编写函数的地方不是函数本身。所以我们可以有把握地说 global 不是一个函数,而是一个执行上下文。

同理,在全局执行上下文中定义的函数不是内部函数。它们只是函数。

也许你对此感到困惑,因为你觉得全局声明的变量可以在全局概念声明的函数内部访问,这只是因为变量的作用域,与闭包无关。

,

当我们执行代码时,JavaScript 引擎做的第一件事就是创建一个全局执行上下文。这与函数执行上下文具有相同的目的,但在全局级别具有更多特殊性。现在,一旦 GEC 被创建 - JS 引擎会一行一行地移动并开始使用自己的函数执行上下文来执行其他函数!

因此,根据您的问题,global 只是一个执行上下文,它在开始时仅创建一次并带有一些额外功能。

希望这能消除您的疑虑。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。