执行上下文
看执行时的那个对象,动态的 同一个函数,在不同的环境调用时,即有不同的执行上下文
执行上下文对象主要包含三个部分: 变量对象arguments、作用域链、this值
每个执行上下文都有一个独立的环境,包含了当前执行的JavaScript代码、变量和函数声明以及对应的作用域链、this指针和其他执行上下文相关的内部属性
全局执行上下文
window对象
作用域链
函数的[[Scope]]属性,保存作用域链,查找变量时,最终查到变量定义的函数作用域或者全局作用域
局部变量->参数->定义时的函数作用域->全局作用域
闭包
通过作用域链在一个作用域中来访问另一个作用域
let a = '全局';
function A(){
let a = '局部';
return {
b: function(){
console.log(a);
}
};
}
const obj = A();
obj.b(); //局部,作用域链在定义时就决定了