JavaScript作用域链示例分享

JavaScript只有函数作用域;每个函数都有个作用域链直达window对象。

变量的查找由内而外层层查找,找到即止。

同时不仅可以查找使用,甚至可以改变外部变量。

var color = "blue";
function changeColor() {
    var anotherColor = "red";
    function swapColors() {
        var tempColor = anotherColor;
        anotherColor = color;
        color = tempColor;
    }
    swapColors();
}
changeColor();
console.log(color);  // "red"  外部变量不仅可以被访问到也可以被修改