前言
好的終於到閉包的最後一個章節了,前面有提到一個小範例是關於金魚腦的小明,那除了這樣的情境可以利用閉包之外,還有一個情境是可以利用閉包達成的,讓我們一起看看。
利用閉包達成私有變數
情境是這樣的,我有 100 元,如果我的錢變多了,就利用某個函式讓錢增加,如果支出超過 10 元,最多就只能付出10元。
讓我們看一段沒有利用閉包的程式碼:
1 | var myMoney = 100; |
好的,這樣我們就完成了這段情境的敘述。
但是有個問題,如果今天與別人協作,別人如果沒有遵照我們訂的函式下去做增減,是可以直接對 myMoney
重新賦值 的,那這樣是不是不太 OK 呢?
因此我們要利用閉包將變數私有化,令別人無法在外部直接對變數賦值,只能透過我們提供的方法來變更值。
1 | function myWallet(InitMoney){ |
透過閉包可以確保讓我們的變數不會突然被修改掉,而且只能用我們定義好的函式對內部的變數進行操作,這樣一來可以確保變數是安全的。
朕不給的,你不能要!
心得
接著就是物件導向的部分啦~不知不覺也複習了這麼多東西呢,也是該好好的認識一下物件導向了,尤其是物件導向的部分,這個名詞該如何簡單又白話的解釋呢?