对于每上下文都有三个重要属性:
1.变量对象(Variable OBJECT,VO)
2.作用域链(Scope chain)
3.this
每个函数中都有一个 [[scope]] 属性,当函数创建后变量保存父量对象中,可以理解成 [[scope]]就是父量对象的一个链接层。
下面举个栗子:
var num = 1;
function a() {
var num = 2;
function b() {
var num = 3;
console.log(num); //3
}
b();
}
a();
首先是 GO执行
GO={
a = 1;
fun a()
}
scope[GO]
fun a执行
fun a AO
{
num = 2
fun b;
}
此时 scope[fun a,GO]
fun b执行
fun b AO
{
num = 3;
}
此时 scope[fun b,fun a,GO]
上个图:
全局作用域 ——>函数1作用域 ——> 函数2作用域
就是这样啦~~~~~
来源:CSDN
作者:我是易夫人
链接:https://blog.csdn.net/qq_44820039/article/details/103672772