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函数
// }