JS执行上下文栈
执行上下文栈
整个代码中一共产生了几个执行上下文对象? n+1 个
n 是调用函数的次数(函数内的调用次数也算) 1 是window对象
1.在全局代码执行前,JS引擎就会创建一个栈来存储管理所有的执行上下文对象
2.在全局执行上下文(window)确定后,将其添加到栈中(压栈)
3.在函数执行上下文创建后,将其添加到栈中(压栈)
4.在当前函数执行完后,将栈顶的对象移除(出栈)
5.当所有的代码执行完后,栈中只剩下window
调用bar函数时,栈内的变化如↑图。
执行谁的时候,谁在最上边。
用后进先出来描述上面这个操作,比先进后出要更准确。