1. 程式人生 > >閉包的應用二 -----(區域性變數的累加)

閉包的應用二 -----(區域性變數的累加)

全域性變數的累加:但是會造成全域性變數汙染

<script>
var a = 1;
function abc(){
        a++;
        alert(a);
}
abc();              //2
abc();            //3
</script>

區域性變數的累加:無法實現累加

<script>


function abc(){
        var a = 1;
        a++;
        alert(a);
}
abc();                       //2
abc();                    //2
</script>

閉包:即是區域性變數,又能累加

<script>
function outer(){
        var x=10;
        return function(){             //函式巢狀函式
                x++;
                alert(x);
        }
}
var y = outer();              //外部函式賦給變數y;
y();                 //y函式呼叫一次,結果為11,相當於outer()();
y();                //y函式呼叫第二次,結果為12,實現了累加
</script>