我一直在摆弄一些Javascript,我在下面的代码中找到了控制台日志1,但是我期待2,因为它是'a'创建了b。
function b(){
c();
function c(){
d();
function d(){
console.log(myVar);
}
}
}
function a(){
var myVar=2;
b();
}
var myVar=1;
a();
但是我再次看到b位于窗口的词汇环境中,所以它从那里获得了价值。那么范围链是如何工作的呢?它是否从调用者/创建者或词汇范围中获取价值?