欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

js閉包與作用域鏈指的是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹js閉包與作用域鏈指的是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)公司主營伍家崗網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),伍家崗h5微信小程序開發(fā)搭建,伍家崗網(wǎng)站營銷推廣歡迎伍家崗等地區(qū)企業(yè)咨詢

在學(xué)習(xí)js過程中會(huì),必定要知道和明白的閉包。閉包是與其他編程語言相比,是js中所特有的一個(gè)。以下就是我對于閉包的認(rèn)識(shí)。

閉包的產(chǎn)生:通俗的說,閉包產(chǎn)生于多個(gè)函數(shù)嵌套之間,當(dāng)內(nèi)層函數(shù)被保存到外面時(shí),閉包就會(huì)產(chǎn)生。【推薦閱讀:JavaScript視頻教程】

作用域鏈:我的理解是,在訪問函數(shù)時(shí),采用鏈?zhǔn)皆L問,而這個(gè)訪問的區(qū)域就是一個(gè)作用域鏈。

js閉包與作用域鏈指的是什么

在這段代碼中,首先訪問f(),之后再訪問b() ,之后再訪問c(),在這一個(gè)例子中,就體現(xiàn)了一種鏈?zhǔn)降脑L問過程。

下面我們就來說一下閉包的作用

閉包的好處:

第一:函數(shù)的累加         第二:緩存結(jié)構(gòu)    第三:封裝   第四模塊化

閉包的壞處:

閉包會(huì)導(dǎo)致原有作用域鏈不釋放,造成內(nèi)存泄漏。

下面就是幾個(gè)閉包的實(shí)際例子:

js閉包與作用域鏈指的是什么

在這個(gè)閉包的例子中,如果沒有return b語句,調(diào)用這個(gè)函數(shù)時(shí),f()的值只能為342;當(dāng)有了這條語句后,所打印出來的值依次是增加的,這個(gè)就是閉包所產(chǎn)生的一個(gè)效果。

js閉包與作用域鏈指的是什么

當(dāng)執(zhí)這段代碼時(shí),你會(huì)發(fā)現(xiàn)你所打印出來的結(jié)果為10個(gè)10,可是為什么會(huì)產(chǎn)生這種效果呢?然后又要怎么解決這種效果呢?

js閉包與作用域鏈指的是什么

當(dāng)執(zhí)行這段代碼時(shí),你就會(huì)發(fā)現(xiàn)此時(shí)打印出來的結(jié)果就為0到9一次從小到大輸出。

產(chǎn)生上述的10個(gè)10的原因其實(shí)就是因?yàn)殚]包所導(dǎo)致的,其中

arr[i] = function(){ document.write(i + " ")  }   此語句為函數(shù)表達(dá)式,此時(shí)arr[i]與document.write(i + " ") 不是想對應(yīng)的,document.write(i + " ") 為輸出語句,只有當(dāng)整個(gè)函數(shù)中的for循環(huán)執(zhí)行完之后才來看這個(gè)語句,由于閉包,此時(shí)的i由于for循環(huán)就i就依次的增加了,直到語句結(jié)束時(shí),i為10,因此打印出的結(jié)果就是10個(gè)10.

下面為什么會(huì)打印出0到9這10個(gè)數(shù)呢,在這里就利用了立即執(zhí)行函數(shù),

立即執(zhí)行函數(shù)的量兩種形式:(function (){}();   (function (){})(); 通常采用第一種。

那什么是立即執(zhí)行函數(shù)呢,其實(shí)可以將其概括為只執(zhí)行一次的函數(shù),當(dāng)執(zhí)行完一次后,不能調(diào)用不能執(zhí)行。因此,在后面輸出0到9這過程中,由于此時(shí)的i為實(shí)參,每一次傳到立即執(zhí)行函數(shù)里面時(shí),j就是此時(shí)i的值,只是整個(gè)表達(dá)式還沒有執(zhí)行而已。所以到最后輸出的時(shí)候就自然而然的輸出了0到9這10個(gè)數(shù)。

以上是js閉包與作用域鏈指的是什么的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!

當(dāng)前文章:js閉包與作用域鏈指的是什么-創(chuàng)新互聯(lián)
文章地址:http://chinadenli.net/article24/cohjce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站品牌網(wǎng)站設(shè)計(jì)網(wǎng)站策劃虛擬主機(jī)自適應(yīng)網(wǎng)站云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)