执行上下文是JavaScript代码运行时的环境容器,包含变量对象、作用域链和this绑定;作用域链是其内部用于变量查找的引用链,定义于函数创建时,决定变量访问路径。

JavaScript的执行上下文(Execution Context)是代码运行时的“环境容器”,它定义了变量、函数能被访问的范围和规则;而作用域链(Scope Chain)是这个容器内部用来查找变量的一条路径。简单说:执行上下文是“舞台”,作用域链是“找东西用的地图”。
执行上下文分三类:全局、函数、eval(极少用)
每次调用函数或脚本启动,JS引擎就创建一个执行上下文。它包含三个核心部分:
- 变量对象(VO):存着当前上下文中声明的变量、函数、参数(函数上下文中叫AO,即Activation Object)
- 作用域链(Scope Chain):指向外层上下文的变量对象的引用链,用于变量查找
- this绑定:决定函数内this指向谁(与执行上下文类型和调用方式有关)
作用域链由词法作用域决定,不是调用时才生成
作用域链在函数**定义时**就确定了,跟它在哪被调用无关。比如嵌套函数内部访问外部变量,引擎会顺着作用域链一层层往外找,直到全局。
示例:
立即学习“Java免费学习笔记(深入)”;
标签: javascript java js 栈 ai 作用域
还木有评论哦,快来抢沙发吧~