真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaScript閉包應(yīng)用實(shí)例分析

這篇文章主要介紹了JavaScript閉包應(yīng)用實(shí)例分析的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇JavaScript閉包應(yīng)用實(shí)例分析文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括伽師網(wǎng)站建設(shè)、伽師網(wǎng)站制作、伽師網(wǎng)頁(yè)制作以及伽師網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,伽師網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到伽師省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

 一 、詞法定義域 Lexical

Closure閉包是編程語(yǔ)言Lexical Scoping的專有屬性,區(qū)別于dynamic  scoping。即函數(shù)執(zhí)行調(diào)用的是其在定義過(guò)程中的”變量定義域“,而非其在調(diào)用時(shí)候的變量定義域。

Javascript的函數(shù)的初始狀態(tài)不僅包括函數(shù)本體而且包括函數(shù)定義過(guò)程所在的定義域。

  • Like most modern programming languages, JavaScript uses lexical scoping. This  means that functions are executed using the variable scope that was in effect  when they were defined, not the variable scope that is in effect when they are  invoked. In order to implement lexical scoping, the internal state of a  JavaScript function object must include not only the code of the function but  also a reference to the scope in which the function definition appears. This  combination of a function object and a scope (a set of variable bindings) in  which the function’s variables are resolved is called a closure in the computer  science literature.

看下面的例子:

function makeCounter () {     let counter = 0;     return function() {return counter++;}; } let counter = makeCounter(); console.log(counter()); console.log(counter()); console.log(counter());  #+RESULTS: : 0 : 1 : 2

對(duì)這個(gè)嵌套函數(shù)而言,最有意思的一點(diǎn)是:當(dāng)外部函數(shù)被調(diào)用返回后(這里是makeCounter()), 再也沒(méi)有任何手段能夠觸及到 counter  這個(gè)變量。只有內(nèi)嵌函數(shù)擁有專屬權(quán)限抵達(dá)該變量。

二、Closure的標(biāo)準(zhǔn)定義

開(kāi)發(fā)者通常應(yīng)該都知道“閉包”這個(gè)通用的編程術(shù)語(yǔ)。

閉包  是指內(nèi)部函數(shù)總是可以訪問(wèn)其所在的外部函數(shù)中聲明的變量和參數(shù),即使在其外部函數(shù)被返回(壽命終結(jié))了之后。在某些編程語(yǔ)言中,這是不可能的,或者應(yīng)該以特殊的方式編寫函數(shù)來(lái)實(shí)現(xiàn)。但是如上所述,在  JavaScript 中,所有函數(shù)都是天生閉包的(只有一個(gè)例外,將在 "new Function" 語(yǔ)法 中講到)。

也就是說(shuō):JavaScript 中的函數(shù)會(huì)自動(dòng)通過(guò)隱藏的 [[Environment]] 屬性記住創(chuàng)建它們的位置,所以它們都可以訪問(wèn)外部變量。

關(guān)于“JavaScript閉包應(yīng)用實(shí)例分析”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“JavaScript閉包應(yīng)用實(shí)例分析”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享文章:JavaScript閉包應(yīng)用實(shí)例分析
文章源于:http://weahome.cn/article/pcjsjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部