欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于JS中的閉包淺談

 更新時(shí)間:2013年08月23日 15:25:12   投稿:shangke  
閉包是一個(gè)擁有許多變量和綁定了這些變量的環(huán)境的表達(dá)式(通常是一個(gè)函數(shù)),因而這些變量也是該表達(dá)式的一部分

個(gè)人見解:在函數(shù)體內(nèi)定義另外的方法函數(shù),而這個(gè)方法函數(shù)被函數(shù)以外的變量引用,這時(shí)就形成了閉包!

可能這樣的理解也太抽象了,并不是那么簡單易懂!實(shí)例吧:

復(fù)制代碼 代碼如下:

<script type="text/javascript">

function A(){
    var S=0;
    function B(){
        alert(++S);
    }
    return B;
}
var C=A();
C();
</script>

上面這一段代碼就創(chuàng)建了一個(gè)閉包,因?yàn)楫?dāng)函數(shù)執(zhí)行到var C=A();時(shí),表面上看C指向的是A函數(shù),而實(shí)際上C所指向的函數(shù)是B函數(shù),所以再執(zhí)行到C()的時(shí)候就會(huì)輸出2;這樣的話B函數(shù)就被A函數(shù)以外的變量引用了,根據(jù)個(gè)人見解,創(chuàng)建了一個(gè)閉包!

當(dāng)我在小小的了解了什么時(shí)候閉包后也順便看了哈閉包的用途,據(jù)說閉包的用途主要有兩點(diǎn):

1、可以讀取函數(shù)內(nèi)部的變量

2、讓這些變量始終保持在內(nèi)存中

復(fù)制代碼 代碼如下:

<script type="text/javascript">
 
function A(){
 var S=1;
 D=function(){
        S+=1;
    }
 function B(){
  alert(S);
 }
    return B;
}
var C=A();
C(); // 輸出1
D();
C(); // 輸出2
  
 </script>

上面的代碼中C指向的還是是B函數(shù),C執(zhí)行了兩次,第一次輸出1,第二次輸出2,這證明了S一直被保存在內(nèi)存中,并沒有在A函數(shù)在被調(diào)用后自動(dòng)清除,這是為什么呢,原因是因?yàn)锽函數(shù)被賦給了一個(gè)全局變量,這導(dǎo)致了B函數(shù)一直在內(nèi)存中,而B函數(shù)的執(zhí)行又需要依賴著A函數(shù),所以A也一直在內(nèi)存中,不會(huì)在調(diào)用結(jié)束后被回收?。ㄟ@樣的理解貌似有點(diǎn)不專業(yè))!

表達(dá)完畢,請廣大群眾多多指教!

相關(guān)文章

  • JavaScript If...Else 聲明

    JavaScript If...Else 聲明

    JavaScript If...Else 聲明...
    2007-04-04
  • 刪除Javascript Object中間的key

    刪除Javascript Object中間的key

    這篇文章介紹了刪除Javascript Object中間的key的方法,然后主要詳談了delete的用法,非常的詳盡,給小伙伴們參考下
    2014-11-11
  • JavaScript中的Math.E屬性使用詳解

    JavaScript中的Math.E屬性使用詳解

    這篇文章主要介紹了JavaScript中的Math.E屬性使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • 詳解JavaScript中的every()方法

    詳解JavaScript中的every()方法

    這篇文章主要介紹了JavaScript中的every()方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06
  • javaScript arguments 對象使用介紹

    javaScript arguments 對象使用介紹

    函數(shù)體內(nèi)可以通過 arguments 對象來接收傳遞進(jìn)來的參數(shù),下面有個(gè)不錯(cuò)的示例,大家可以感受下
    2013-10-10
  • 有關(guān)javascript的性能優(yōu)化 (repaint和reflow)

    有關(guān)javascript的性能優(yōu)化 (repaint和reflow)

    本篇文章,小編將為大家介紹,有關(guān)javascript的性能優(yōu)化(repaint和reflow),有需要的朋友可以參考一下
    2013-04-04
  • 刪除重復(fù)數(shù)據(jù)的算法

    刪除重復(fù)數(shù)據(jù)的算法

    刪除重復(fù)數(shù)據(jù)的算法...
    2006-11-11
  • JavaScript入門之事件、cookie、定時(shí)等

    JavaScript入門之事件、cookie、定時(shí)等

    本文從上一篇文章結(jié)束的地方開始,解釋其他的一些基本的JavaScript語言概念,繼續(xù)為初學(xué)者提供對語言的基礎(chǔ)理解
    2011-10-10
  • 一起來學(xué)習(xí)一下JavaScript的事件流

    一起來學(xué)習(xí)一下JavaScript的事件流

    這篇文章主要為大家詳細(xì)介紹了JavaScript的事件流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • JSON的語法與規(guī)則詳解

    JSON的語法與規(guī)則詳解

    這篇文章主要介紹了JSON的語法與規(guī)則詳解,Web?API可以接收J(rèn)SON格式的數(shù)據(jù),也可以返回JSON格式的數(shù)據(jù)。在接收J(rèn)SON?數(shù)據(jù)時(shí),需要使用相應(yīng)的庫或框架來解析JSON數(shù)據(jù),在返回JSON數(shù)據(jù)時(shí),可以使用相應(yīng)的庫或框架將數(shù)據(jù)轉(zhuǎn)換為JSON格式
    2023-07-07

最新評論