js笔记基础

32 阅读1分钟

执行上下文

看执行时的那个对象,动态的 同一个函数,在不同的环境调用时,即有不同的执行上下文

执行上下文对象主要包含三个部分: 变量对象arguments、作用域链、this值

每个执行上下文都有一个独立的环境,包含了当前执行的JavaScript代码、变量和函数声明以及对应的作用域链、this指针和其他执行上下文相关的内部属性

全局执行上下文

window对象

作用域链

函数的[[Scope]]属性,保存作用域链,查找变量时,最终查到变量定义的函数作用域或者全局作用域

局部变量->参数->定义时的函数作用域->全局作用域

闭包

通过作用域链在一个作用域中来访问另一个作用域

let a = '全局';
function A(){
    let a = '局部';
    return {
        b: function(){
            console.log(a);
        }
    };
}

const obj = A();
obj.b();    //局部,作用域链在定义时就决定了