【发布时间】:2023-02-06 00:45:45
【问题描述】:
假设我有以下代码
function perpetuity() {
console.log("Being called");
setTimeout(perpetuity, 1500);
}
perpetuity();
我想知道调用堆栈中是否存在全局执行上下文,以便可以执行此代码。 或者 如果全局执行上下文随着回调函数的执行上下文每 1500ms 一起创建和删除。
Chat gpt 说 GEC 永远不会停止,但执行此操作时我无法在浏览器的调用堆栈中找到 GEC。
【问题讨论】:
-
当然,全局上下文仍然存在——毕竟,当它正在运行时,您可以与例如
window在浏览器的控制台中..? -
我的问题是它是保留在调用堆栈中还是每 1500 毫秒添加和删除一次。另外,如果它仍然存在,为什么我不能在浏览器的调用堆栈中看到它
-
无论什么遗迹?另外,它会有什么不同,即你为什么需要知道这个? (此外,这听起来很深奥,不同的浏览器可以做不同的事情。)
-
GEC 保留与否。我正在学习 JS,这就是为什么我需要知道这个
-
那么,您认为
console.log和setTimeout来自哪里?如果您运行该代码,然后在您的控制台中输入setTimeout = null;会怎么样?你认为会发生什么?
标签: javascript executioncontext