close

[簡單解釋closure]

  最近都在寫javascript 程式,簡單紀錄一下何謂closure呢? 我覺得closure真的很難解釋,不太是一兩句話就能說得清楚的。  首先,許多程式語言,有提供private方法,如java c++ 等等,供特定類別或方法去使用裡面的變數或函式。但是偏偏javascript裡面沒有內建private這個東西,那麼該怎麼辦呢?就需要利用javascript有作用域的特性,也就是所謂的包閉(closure)的觀念。來看一下影片巴

 

[影片程式教學]

[完整程式碼]

  以上是一個銀行存款的範例教學,大家若有問題可以留言給我喔~~下面附上完整程式碼。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>包閉 closures 基本觀念</title>
    </head>
    <body>
        <script>
            //銀行存款
            function Outer(){
                let money=0;
                function inner(){
                    money+=Number(prompt("存款金額"));
                    return money;
                }
                return inner;
            }
 
            let saveMoney=Outer();
            alert(saveMoney());
            alert(saveMoney());
            alert(saveMoney());
        </script>
    </body>
</html>

 

 

 

arrow
arrow

    charliech17 發表在 痞客邦 留言(0) 人氣()