iT邦幫忙

DAY 25
6

JavaScript 三十參系列 第 25

JavaScript 三十參(25):閉包(Closure)

參與iT邦JavaScript中忍比賽,獲得一本JS武林祕級“JavaScript設計模式”,因而閉門修練月餘,今神功既成故節錄三十片段,以饗邦友。


說完了函式,此節要介紹的是JS設計模式中的亮點:closure(閉包)。

JS閉包有幾個特點:

(1)可返回函數內定義的函數
(2)可讓外部環境使用內部private變數
(3)在記憶體中一直保有private變數

來看範例:

function f(){

  var n = 999;

  function f1(){
     console.log(n+=1);
   };

   return f1;
}

var result = f();

result(); // 1000
result(); // 1001
result(); // 1002

由此例可看出可透過閉包來取用閉包內的函數與變數,這實在是粉神奇的事。

咱先進廣告,明天回來...

(待)

JavaScript 三十參(總整理)


上一篇
JavaScript 三十參(24):函式(4/4)
下一篇
JavaScript 三十參(26):封裝
系列文
JavaScript 三十參30
0
魯大
iT邦高手 1 級 ‧ 2012-11-02 11:54:33

沙發

看更多先前的回應...收起先前的回應...
魯大 iT邦高手 1 級 ‧ 2012-11-02 11:55:50 檢舉

個人比較喜歡開箱或是開....那個包... rock

ted99tw iT邦高手 1 級 ‧ 2012-11-02 12:33:34 檢舉

looney提到:
"開"....那個包...

原來“閉”包還有這個好處呀......開心

魯大 iT邦高手 1 級 ‧ 2012-11-02 13:07:53 檢舉

本次沙發沒有付餐點嗎??? 倒

ted99tw iT邦高手 1 級 ‧ 2012-11-02 14:36:27 檢舉

looney提到:
本次沙發沒有付餐點嗎???

啊,真是太怠慢了....趕著自己吃午餐卻忘了款待來人....趕快石鍋拌飯端上...

魯大 iT邦高手 1 級 ‧ 2012-11-05 09:10:16 檢舉

吃飽

0
小成
iT邦高手 10 級 ‧ 2012-11-02 13:53:18

ted99tw提到:
閉包

我想起了

ted99tw iT邦高手 1 級 ‧ 2012-11-02 14:38:01 檢舉

驚這隻...是....何方....神聖.....啊~~~驚

外獅佬 iT邦大師 1 級 ‧ 2012-11-05 09:16:18 檢舉

碧波....

外獅佬 iT邦大師 1 級 ‧ 2012-11-05 09:17:15 檢舉

他至少有30歲了吧...Orz

0
fillano
iT邦超人 1 級 ‧ 2012-11-02 22:16:04

之前寫的程式,就剛好出了這個包。

ted99tw iT邦高手 1 級 ‧ 2012-11-05 09:28:37 檢舉

iT邦幫忙MVPfillano提到:
就剛好"出了這個包"

嗯...這算是個好包...冷

我要留言

立即登入留言