执行上下文

33 阅读1分钟
const foo = function(i){
    var a = "hello";
    var b = function privateB(){}
    function c() {}
}
foo(10);
// 生成一个foo的函数上下文环境
//1. 创建上下文阶段

// vo里面要确定的东西
// 确定函数的形参(并赋值)
// 函数环境会初始化创建arguments对象(并赋值)
// 确定普通字面量形式的函数声明(并赋值)
// 变量声明,函数表达式生命(并赋值)
fooExecutionContext = {
    variableObject: {
        i: 10,
        arguments: {0: 10, length: 1},
        c: 指向c函数,
        a: undefined,
        b: undefined
    },
    // this,
    // scope
}

// 2. 执行上下文阶段
// variableObject: {
//         i: 10,
//         arguments: {0: 10, length: 1},
//         c: 指向c函数,
//         a: "hello",
//         b: privateB函数
//     }