国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談js中的閉包

kumfo / 1639人閱讀

摘要:對(duì)于一個(gè)個(gè)剛剛接觸前端的新手,天天聽(tīng)人講閉包,聽(tīng)的那個(gè)高大尚,心中對(duì)各位技術(shù)大佬是那個(gè)的膜拜,于是做為前端菜鳥(niǎo)的我,就去了解了傳說(shuō)中的閉包。

對(duì)于一個(gè)個(gè)剛剛接觸前端的新手,天天聽(tīng)人講閉包,聽(tīng)的那個(gè)高大尚,心中對(duì)各位技術(shù)大佬是那個(gè)的膜拜,于是做為前端菜鳥(niǎo)的我,就去了解了傳說(shuō)中的閉包。

何為閉包?
通俗易懂的講,就是可以調(diào)用函數(shù)內(nèi)部的變量和方法

舉例說(shuō)明如下:

     function test(){
           var x = 1;
           var y = 2;
           function func1(){
               x++;
               console.log("x:"+x);
           }

           function func2(){
               y++;
               console.log("y:"+y);
           }

            func3 = function(){
               console.log("x+y:"+(x+y));
           }

           return {
               func1:func1
           }
       }

       var obj1 = test();
       obj1.func1();//輸出x:2
       obj1.func1();//輸出x:3
       func3();//輸出x+y:5

       var obj2 = test();
       obj2.func1();//輸出x:2
       obj2.func1();//輸出x:3
       obj2.func1();//輸出x:4
       func3();//輸出x+y:6

       obj1.func1();//輸出x:4
       func3();//輸出x+y:6

解析:你可以把test理解成一個(gè)對(duì)象,首先建立一個(gè)obj1對(duì)象,這個(gè)時(shí)候調(diào)用obj1.func1()時(shí),test中的x會(huì)被累加,這個(gè)就是閉包的一個(gè)特點(diǎn),就是外部可以改變函數(shù)內(nèi)部的變量值,這里要記住一點(diǎn),只有在test中return返回的函數(shù)在外部才能被調(diào)用,如果此時(shí)調(diào)用obj1.func2()會(huì)提示出錯(cuò)的,只有跟func1一樣在return中返回才能被外部調(diào)用;func3可以理解為公有的函數(shù),但是只有在聲明完test之后才能被調(diào)用,因?yàn)閒unc3第一次定義是在test中定義的,所有要先test()之后才能被調(diào)用;obj2是新建立的一個(gè)對(duì)象,此時(shí)的obj1和obj2兩個(gè)對(duì)象是互不干擾的,各自疊加,這也是閉包的一個(gè)特性,可以用在以后建立多個(gè)計(jì)時(shí)器時(shí)使用閉包,事半功倍;這里要特別強(qiáng)調(diào)一下func3這個(gè)函數(shù),第一個(gè)func3調(diào)用的是對(duì)象obj1中的func3,而當(dāng)obj2新對(duì)象聲明之后,func3調(diào)用的就是obj2中的func3了

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/84528.html

相關(guān)文章

  • 云天視角-淺談閉包

    摘要:函數(shù)在執(zhí)行的時(shí)候執(zhí)行函數(shù),將當(dāng)前的變量對(duì)象由于當(dāng)前的環(huán)境是函數(shù),所以將其活動(dòng)對(duì)象作為變量對(duì)象添加到作用域鏈的前端。此時(shí),由于在執(zhí)行,而作用域鏈也存在,所以可以在作用域鏈上進(jìn)行查找,去訪問(wèn)的變量。 一、現(xiàn)狀 閉包是jser繞不過(guò)的坎,一直在都在說(shuō),套用 simpson 的話來(lái)說(shuō):JavaScript中閉包無(wú)處不在,你只需要能夠識(shí)別并擁抱它。 閉包是基于詞法作用域書(shū)寫(xiě)代碼時(shí)的自然結(jié)果,你甚...

    nanfeiyan 評(píng)論0 收藏0
  • 淺談js內(nèi)存與閉包

    摘要:將他們放在堆中是為了不影響棧的效率。接著是臨時(shí)空間函數(shù)執(zhí)行的時(shí)候,會(huì)臨時(shí)開(kāi)辟一塊內(nèi)存空間,這塊內(nèi)存空間長(zhǎng)得和外面這個(gè)一樣,也有自己的棧堆,當(dāng)函數(shù)運(yùn)行完就銷毀。中的內(nèi)存第一個(gè)部分還是和上面的一樣,有棧堆運(yùn)行時(shí)環(huán)境,另外還有一個(gè)緩沖區(qū)存放。 0.前言 主要結(jié)合了內(nèi)存的概念講了js的一些的很簡(jiǎn)單、但是又不小心就犯錯(cuò)的地方。結(jié)論:js執(zhí)行順序,先定義,后執(zhí)行,從上到下,就近原則。閉包可以讓外部...

    dailybird 評(píng)論0 收藏0
  • 淺談JavaScript中的閉包

    摘要:在內(nèi)部,理所當(dāng)然能訪問(wèn)到局部變量,但當(dāng)作為的返回值賦給外的全局變量時(shí),神奇的事情發(fā)生了在全局作用域中訪問(wèn)到了,這就是閉包。而閉包最神奇的地方就是能在一個(gè)函數(shù)外訪問(wèn)函數(shù)中的局部變量,把這些變量用閉包的形式放在函數(shù)中便能避免污染。 一、閉包是什么? 《JavaScript高級(jí)程序設(shè)計(jì)》中寫(xiě)道:閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù),如果用下定義的觀點(diǎn)看,這句話就是說(shuō)閉包是函數(shù),我...

    Riddler 評(píng)論0 收藏0
  • 淺談reacthooks閉包陷阱

      本文不會(huì)過(guò)多講解基礎(chǔ)知識(shí),更多說(shuō)的是在使用useRef如何能擺脫 這個(gè) 閉包陷阱 ?  react hooks 的閉包陷阱 基本每個(gè)開(kāi)發(fā)員都有遇見(jiàn),這是很令人抓狂的。  (以下react示范demo,均為react 16.8.3 版本)  列一個(gè)具體的場(chǎng)景:  functionApp(){   const[count,setCount]=useState(1);   useEffect(()=...

    3403771864 評(píng)論0 收藏0
  • 淺談Javascript閉包和匿名函數(shù)【1】

    摘要:我們可以用普通函數(shù)內(nèi)部嵌套匿名函數(shù),形成一個(gè)閉包來(lái)使變量駐留在內(nèi)存中。局部變量閉包為什么要將賦值給變量呢這里我們就要談到匿名函數(shù)調(diào)用問(wèn)題匿名函數(shù)如何調(diào)用還是上面的例子會(huì)將整個(gè)函數(shù)體打印出來(lái)這樣才調(diào)用了函數(shù)內(nèi)部的匿名函數(shù)看到這里。 閉包含義: 閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的常見(jiàn)的方式,就是在一個(gè)函數(shù)內(nèi)部創(chuàng)建另一個(gè)函數(shù),通過(guò)另一個(gè)函數(shù)訪問(wèn)這個(gè)函數(shù)的局部變量。 這...

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

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

0條評(píng)論

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