关于“函数调用和执行栈”中的示例

以“函数调用和执行堆栈”中的示例为例。

function a() {
  b();
  var c;
}

function b() {
  var d;
}

a();
var d;

为什么“ var d”不存储在全局执行上下文的内存中?我认为不在其他函数内部的函数和变量应该附加到全局执行栈中的全局对象。

tnz1987 回答:关于“函数调用和执行栈”中的示例

调用它时,它将位于全局执行上下文中,并且位于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}");

本文链接:https://www.f2er.com/3168618.html

大家都在问