91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript閉包應用實例分析

發布時間:2022-05-23 14:55:58 來源:億速云 閱讀:139 作者:iii 欄目:大數據

這篇文章主要介紹了JavaScript閉包應用實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaScript閉包應用實例分析文章都會有所收獲,下面我們一起來看看吧。

 一 、詞法定義域 Lexical

Closure閉包是編程語言Lexical Scoping的專有屬性,區別于dynamic  scoping。即函數執行調用的是其在定義過程中的”變量定義域“,而非其在調用時候的變量定義域。

Javascript的函數的初始狀態不僅包括函數本體而且包括函數定義過程所在的定義域。

  • 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

對這個嵌套函數而言,最有意思的一點是:當外部函數被調用返回后(這里是makeCounter()), 再也沒有任何手段能夠觸及到 counter  這個變量。只有內嵌函數擁有專屬權限抵達該變量。

二、Closure的標準定義

開發者通常應該都知道“閉包”這個通用的編程術語。

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

也就是說:JavaScript 中的函數會自動通過隱藏的 [[Environment]] 屬性記住創建它們的位置,所以它們都可以訪問外部變量。

關于“JavaScript閉包應用實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaScript閉包應用實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溧阳市| 夹江县| 花垣县| 凤阳县| 丘北县| 福泉市| 南川市| 梅州市| 宜都市| 阿克| 遂宁市| 郓城县| 金湖县| 南充市| 内黄县| 廊坊市| 淮滨县| 石泉县| 溧阳市| 且末县| 阿合奇县| 株洲市| 彝良县| 涿州市| 沭阳县| 柳江县| 田林县| 洛扎县| 叶城县| 拜泉县| 道真| 上犹县| 沾化县| 梅河口市| 铁岭市| 克山县| 日喀则市| 宁津县| 天镇县| 北海市| 太原市|