EC,执行上下文(简称上下文)决定了Js执行过程中可以获取哪些变量、函数、数据
先声明一下EC不等于作用域,先有上下文,再有作用域
EC 执行上下文,决定了Js执行过程中可以获取哪些变量、函数、数据,一段程序可能被分割成许多不同的上下文,每一个上下文都会绑定一个变量对象(variable object),它就像一个容器,用来存储当前上下文中所有已定义或可获取的变量、函数等。位于最顶端或最外层的上下文称为全局上下文(global context)
JS在运行过程中,首先是在global全局上下文中,遇到函数执行,开启新的上下文,函数被压入栈顶,叫做进栈,执行完之后,就被弹出,叫做出栈
栈像一个盒子一样,一层一层的,后放进的东西先出来,先放进去的东西后出来
JS解释器总是工作在栈顶,也就时指向当前上下文,当前在运行的函数
EC会绑定当前函数的参数对象,arguments和函数本地的变量
之后会创建属于该上下文的作用域链
最后将this赋予这一function所属的Object(实例对象)