成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

什么是閉包,變量的作用域和自執(zhí)行函數(shù)

daydream / 2425人閱讀

摘要:作用域和閉包以及自執(zhí)行函數(shù)作用域作用域分為種全局作用域全局作用域就是在的任何位置都能訪問過函數(shù)作用域只能在函數(shù)里面調(diào)用的稱之為函數(shù)作用域閉包嵌套在函數(shù)里面的函數(shù)及周邊的變量叫閉包閉包存在的問題是周邊變量不會(huì)被釋放,常駐內(nèi)存中閉包的缺點(diǎn)消耗內(nèi)

作用域和閉包以及自執(zhí)行函數(shù) 作用域 作用域分為2種 1、全局作用域
全局作用域就是在js的任何位置都能訪問過
2、函數(shù)作用域
只能在函數(shù)里面調(diào)用的稱之為函數(shù)作用域
閉包 嵌套在函數(shù)里面的函數(shù)及周邊的變量叫閉包
閉包存在的問題是:周邊變量不會(huì)被釋放,常駐內(nèi)存中
閉包的缺點(diǎn):消耗內(nèi)存
下面我們做一個(gè)閉包的示例
在函數(shù)中我們調(diào)用另一個(gè)函數(shù),讓第二個(gè)函數(shù)
/閉包
function test(){
    var b = 2;
   return function(){
        var c = 3;
        console.log(b);
    }
}
var new1 = test();
new1();
打印結(jié)果得到的是2
下面我們?cè)谡{(diào)用一次new1()
function test(){
    var b = 2;
    return function(){
        var c = 3;
        console.log(b);
    }
}
var new1 = test();
new1();  new1();
打印的結(jié)果是2 2
由此我們得到一個(gè)結(jié)論,我們要想打印下面這個(gè)函數(shù)的結(jié)果,我們就用閉包做
function test(){
    var b = 2;
}
var new1 = test();
new1();
我們剛才說到閉包存在的問題是:周邊變量不會(huì)被釋放,常駐內(nèi)存中下面我們舉例說明
function test(){
    var b = 2;
   return function(){
        b++            
        console.log(b);
    }
}
var new1 = test();
new1();new1(); 
打印的結(jié)果是3 4
我們?cè)谡{(diào)用一個(gè)函數(shù)
function test(){
    var b = 2;
   return function(){
        b++            
        console.log(b);
    }
}
var new1 = test();
new1();new1(); new1();
現(xiàn)在的輸出結(jié)果是 3 4 5
自執(zhí)行函數(shù)(立即執(zhí)行函數(shù)) 自執(zhí)行函數(shù)有2中寫法
//第一種寫法
(function (){
    console.log(1);
})();
//第二種寫法
(function (){
    console.log(2)
}()); 
自執(zhí)行函數(shù)也是也是一個(gè)閉包
var aa =  (function (){
    var a = 55;
    function test(){
        a++;
        console.log(a);
    }
    return test;
})();
aa();aa();
打印結(jié)果56 57
以上就是變量作用域和閉包以及自執(zhí)行函數(shù)的介紹

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87336.html

相關(guān)文章

  • 什么閉包?變量作用域和閉包。

    摘要:在上面的代碼中,函數(shù)實(shí)際上就是函數(shù)的閉包函數(shù),我們讓其執(zhí)行三次,結(jié)果分別為。這是因?yàn)?,函?shù)中的局部變量一直被保存在內(nèi)存中。所以閉包有個(gè)缺點(diǎn),就是內(nèi)存占用較大。自執(zhí)行函數(shù)上面這段函數(shù)也是閉包的一種。我們利用閉包來做一個(gè)小例子。 變量作用域和閉包 變量作用域 當(dāng)我們寫 js 文檔的時(shí)候經(jīng)常會(huì)設(shè)置變量,變量的類型有兩種: 全局變量 局部變量 這兩種類型的變量有者不同的作用范圍,全局變量的...

    U2FsdGVkX1x 評(píng)論0 收藏0
  • JavaScript面向?qū)ο髜 作用域和閉包

    摘要:大名鼎鼎的作用域和閉包,面試經(jīng)常會(huì)問到。聲明理解閉包,先理解函數(shù)的執(zhí)行過程。閉包的基本結(jié)構(gòu)因?yàn)殚]包不允許外界直接訪問,所以只能間接訪問函數(shù)內(nèi)部的數(shù)據(jù),獲得函數(shù)內(nèi)部數(shù)據(jù)的使用權(quán)。 大名鼎鼎的作用域和閉包,面試經(jīng)常會(huì)問到。閉包(closure)是Javascript語(yǔ)言的一個(gè)難點(diǎn),也是它的特色。 聲明 理解閉包,先理解函數(shù)的執(zhí)行過程。 代碼在執(zhí)行的過程中會(huì)有一個(gè)預(yù)解析的過程,也就是在代碼的...

    WilsonLiu95 評(píng)論0 收藏0
  • 圖解JS閉包形成原因

    摘要:閉包的出現(xiàn)正好結(jié)合了全局變量和局部變量的優(yōu)點(diǎn)。這就是閉包的一個(gè)使用場(chǎng)景保存現(xiàn)場(chǎng)。 前言 什么是閉包,其實(shí)閉包是可以重用一個(gè)對(duì)象,又保護(hù)對(duì)象不被篡改的一種機(jī)制。什么是重用一個(gè)對(duì)象又保護(hù)其不被篡改呢?請(qǐng)看下面的詳解。 作用域和作用域鏈 注意理解作用域和作用域鏈對(duì)理解閉包有非常大的幫助,所以我們先說一下作用域和作用域鏈 什么是作用域作用域表示的是一個(gè)變量的可用范圍、其實(shí)它是一個(gè)保存變量的對(duì)象...

    wind3110991 評(píng)論0 收藏0
  • 你應(yīng)該要知道作用域和閉包

    摘要:寫在前面對(duì)于一個(gè)前端開發(fā)者,應(yīng)該沒有不知道作用域的。欺騙詞法作用域有兩個(gè)機(jī)制可以欺騙詞法作用域和。關(guān)于你不知道的的第一部分作用域和閉包已經(jīng)結(jié)束了,但是,更新不會(huì)就此止住未完待續(xù) 這是《你不知道的JavaScript》的第一部分。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 寫在前面 對(duì)于一個(gè)前端開發(fā)者,應(yīng)該沒有不知道作用域的。它是一個(gè)既簡(jiǎn)單有復(fù)雜的概念,簡(jiǎn)單到每行代碼都有它的影子...

    JouyPub 評(píng)論0 收藏0
  • 深入javascript——作用域和閉包

    摘要:注意由于閉包會(huì)額外的附帶函數(shù)的作用域內(nèi)部匿名函數(shù)攜帶外部函數(shù)的作用域,因此,閉包會(huì)比其它函數(shù)多占用些內(nèi)存空間,過度的使用可能會(huì)導(dǎo)致內(nèi)存占用的增加。 作用域和作用域鏈?zhǔn)莏avascript中非常重要的特性,對(duì)于他們的理解直接關(guān)系到對(duì)于整個(gè)javascript體系的理解,而閉包又是對(duì)作用域的延伸,也是在實(shí)際開發(fā)中經(jīng)常使用的一個(gè)特性,實(shí)際上,不僅僅是javascript,在很多語(yǔ)言中都...

    oogh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<