欧美日韩国产一区,亚洲一区视频,色综合久久久久,私密按摩师舌头伸进去了,99re6这里只有精品,夜夜性日日交xxx性hd

javascript新手學習第八課

  • • 發表于 8年前
  • • 作者 丁小柒
  • • 7527 人瀏覽
  • • 4 條評論
  • • 最后編輯時間 8年前
  • • 來自 [技 術]

原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處

何為閉包,所謂閉包就是在一個函數內創建一個新函數,通過這個函數來調用外面的局部變量,主要是為了設計私有的方法和變量,使用閉包會增大內存使用量,使用不當很容易造成內存泄露,但是可以避免全局變量的污染


function out() {  
          var a = 1;  
          return function(a){//使用匿名函數實現局部變量駐留內存中,從而實現累加
           return a++;
          };  
        }         
        var fun = out();  
        fun();// 1 執行后 ++a,,然后a還在~  
        fun();// 2   
        fun = null;//a被回收

閉包的變量如果不被收回,那么會一直存在,消耗內存
在如上的例子中,我們會發現,一個函數套用了一個函數,所以我們有時候會看到如下的調用方法 fun()();
如果以上面的代碼為例,那么

var fun=out(); 
console.log(fun);    //輸出function(){return a++; }; 說明out()=被返回的函數
var fun=out()(); 
console.log(fun);    //輸出1,說明out()()=最內部被返回的值

這是因為函數內另一個函數也是作為返回的值而存在,所以我們可以直接通過這樣的方法來調用內部返回函數,那么如果是var fun=out()(2);那么返回值是什么呢,如果在全局里定義一個var a=3;
是不感覺到迷惑了,其實這里有個小技巧,當一個變量被返回之后,會被返回給離他最近的一個相同名稱的變量. 這句話是我總結的,如果不對,還請指出

私有成員

var out = (function(){     //使用匿名函數
        var a = 1;         //定義私有變量
        function fir(){    //私有函數
              return  a++;

        }
         function sec(){
            return a++;

        }
      return {
                a:fir,             //使用json結構來儲存函數并返回
                b:sec
        }
})();
out.b();     //2
out.c()      //3
分享到:
4條評論
Ctrl+Enter
作者

丁小柒

丁小柒

APP:0 帖子:24 回復:26 積分:1091

已加入社區[3114]天

長劍非是封木鞘,揮手再斬萬鬼雄

作者詳情》
Top