溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

js閉包的理解

發(fā)布時(shí)間:2020-07-18 18:19:37 來(lái)源:網(wǎng)絡(luò) 閱讀:422 作者:兩天三頓 欄目:開發(fā)技術(shù)

1.為什么用閉包?    

js變量的作用域:全局變量和局部變量 

    函數(shù)內(nèi)部是可以直接讀取全局變量的,而函數(shù)外部卻無(wú)法讀取函數(shù)內(nèi)部的局部變量,所以閉包的出現(xiàn)實(shí)際就是為了能在函數(shù)外部獲取函數(shù)內(nèi)部的局部變量。


2.什么是閉包?  

    function f1(){

        var n=1;

        function f2(){

          alert(n); 

        }

        return f2;

      }

    var result=f1();

    result();

函數(shù)外部訪問(wèn)不到內(nèi)部變量?我們?cè)诤瘮?shù)f1內(nèi)部聲明函數(shù)f2,n相當(dāng)于f2的全局變量,所以f2是可以訪問(wèn)f1的局部變量,所以,我們將f2作為返回值return出來(lái),就可以在外部訪問(wèn)f1中的局部變量。


3.閉包的作用?

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

    (2)讓這些變量的值永遠(yuǎn)保存在內(nèi)存中。(實(shí)例中result其實(shí)是指向f2的,所以f2始終會(huì)在內(nèi)存中,而f2又是依賴于f1而存在的,所以f1也會(huì)一直處在內(nèi)存中不會(huì)被垃圾回收)

向AI問(wèn)一下細(xì)節(jié)
推薦閱讀:
  1. JS閉包
  2. js閉包有什么用

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

js j
AI