函数的执行过程,就是一个不断地推入栈,推出栈的过程。
var color = 'blue';
function changeColor() {
var anotherColor = 'red';
function swapColors() {
var tempColor = anotherColor;
anotherColor = color;
color = tempColor;
}
swapColors();
}
changeColor();
比如上面这段代码,在执行过程中,不断地依次将changeColor()、swapColors()推入环境栈,执行完毕swapColors()之后,再将其推出栈,再去推出changeColor(),再去推出更外部函数出栈的过程。