(四)不可不說的JS重點知識~閉包(測試小姐姐專題)

        咱們一塊兒,天天進步一點。日積月累,有朝一日定會,厚積薄發。java

(一)不可不說的JS重點知識~當即執行函數編程

(二)不可不說的JS重點知識~節流和防抖(測試小姐姐專題)markdown

(三)不可不說的JS重點知識~遞歸和尾遞歸(測試小姐姐專題)閉包

(四)不可不說的JS重點知識~閉包(測試小姐姐專題)函數

(五)javaScript重點知識~~~單例模式(測試小姐姐專題)post

        你們好,通過一週的「遞歸」攻勢。測試小姐姐已經返璞歸真(她居然敢在個人副駕駛脫鞋了。還把腿搭在了儲物箱上面),她卸去了女神高冷的姿態。這讓我內心多少有點安慰,畢竟沒有辜負我這些日子的付出。
       不過我發現測試小姐姐身邊,仍是有別的男人在其左右獻殷勤。怎麼辦呢?我是佔有慾很強的男人啊,這種狀況能容忍嗎?要想辦法,讓小姐姐內心只有我一我的。她的私生活只能有我來參與,具體就是:她只能和我牽手、一塊兒逛街、購物、吃飯........固然還有 吻.........
時間一分一秒的過去,「閉包」的編程思想讓我靈光一現。「閉包」其中一個特性,不就可讓一個對象的屬性設置成私有屬性嗎!!!!
        讓小姐姐的,牽手、吃飯、購物.....這些屬性。只能讓我來訪問 就能夠了。
把小姐姐當作一個函數,在她的內部建立一個函數,而後return這個函數。當她new一個對象。返回的函數始就是是我。只有我能訪問 小姐姐這個函數的全部屬性。這個想法態太MT了。

1、接下來讓咱們認識一下閉包。

**閉包函數**:聲明在一個函數中的函數,叫作閉包函數。
**閉包**:內部函數老是能夠訪問其所在的外部函數中聲明的參數和變量,即便在其外部函數被返回(壽命終結)了以後。

2、閉包的優缺點

      局部變量會常駐在內存中;
      能夠避免使用全局變量,防止全局變量污染;
      會形成內存泄漏(有一塊內存空間被長期佔用,而不被釋放)

3、閉包的經典案例。

案例一:

function xiaojiejie(){           
         var dubai = '我愛你小馬哥哥';  // xiaojiejie的活動對象之中;          function wenwo(){               
                 console.log('吻我')         
         }                    
         return function(){   //匿名函數的活動對象;         
                console.log(dubai);        
                wenwo();             
          }                   
}           
     var wo = xiaojiejie();         
     wo();//我愛你小馬哥哥,吻我
複製代碼

案例二:

function xiaojiejie(x) {
         return function(y) {
                return x + y;
         };
}
        var duixiang1 = xiaojiejie("小馬哥");
        var duixiang2 = xiaojiejie("我愛你");
        console.log(duixiang1("我愛你"));  // 小馬哥 我愛你
        console.log(duixiang2("xxx")); // 我愛你 xxx
複製代碼
        沒有十全十美的解決方案。正如這個閉包,我忽略了一個特性就是,小姐姐能夠new好多個對象出來,每一個對象,都有他們本身特有的內存地址。new出來的每一個不一樣的對象都能訪問小姐姐的屬性。雖然案例二,能夠經過傳參的方式,能夠在某種程度上進行優化。可是小姐姐在燈紅酒綠的大都市中不免受到腐蝕。若是解決不了這個問題,小姐姐均可以當海王了。想到這裏我哭了,怎麼辦??我想讓小姐姐的內心只有我........ 各位大神幫個支個招吧.........
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息