关于“函数调用和执行堆栈”中的示例。
function a() {
b();
var c;
}
function b() {
var d;
}
a();
var d;
为什么“var d”不存储在全局执行上下文的内存中?我认为不在其他函数内的函数和变量应该附加到全局执行堆栈中的全局对象。
最佳答案
当它被调用时,它将在全局执行上下文中和 b() 的执行上下文中。 JavaScript 允许隐藏变量 所以当在 b() 的上下文中定义的变量 d 就是你得到的,但在其他地方你会得到全局的变量 d
function a() {
b();
var c;
}
function b() {
var d;
console.log("var d inside b() ${d}");
}
a();
var d;
console.log("var d in global ${d}");
关于javascript - 关于 "function invocation and the execution stack"中的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688504/