亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

javascript中閉包的應用場景

發布時間:2020-06-28 17:11:23 來源:億速云 閱讀:351 作者:元一 欄目:web開發

今天就跟大家聊聊有關javascript中閉包的應用場景,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

閉包的定義:

官方對閉包的解釋是:一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函數),因而這些變量也是該表達式的一部分。簡單的說,javascript允許使用內部函數---即函數定義和函數表達式位于另一個函數的函數體內。而且,這些內部函數可以訪問它們所在的外部函數中聲明的所有局部變量、參數和聲明的其他內部函數。當其中一個這樣的內部函數在包含它們的外部函數之外被調用時,就會形成閉包。

閉包的使用場景:

1】、采用函數引用方式的setTimeout調用

setTimeout的第一個參數一般是一個即將要執行的函數,第二個參數是一個延遲時間。

如果一段代碼想要通過setTimeout來調用,那么它需要傳遞一個函數對象的引用來作為第一個參數,但這個函數對象的引用無法為將要被延遲執行的對象提供參數。此時可以調用另一個函數來返回一個內部函數的調用,將那個內部函數對象的引用傳遞給setTimeout函數,內部函數執行時需要的參數,在調用外部函數時傳遞給它,setTimeout在執行內部函數時無需傳遞參數,因為內部函數仍然能夠防偽外部函數調用時提供的參數。

javascript中閉包的應用場景

2】、小范圍代替全局變量

javascript中閉包的應用場景

3】、訪問私有變量的特權方法?

特權方法:有權訪問私有變量和私有函數的公有方法

私有變量包括:

1)、局部變量

2)、函數的參數

3)、函數內部定義的其他函數(閉包)

javascript中閉包的應用場景

以上代碼的構造函數中定義了兩個特權方法:getName()、setName(),這兩個方法可以通過對象訪問,而且都有權訪問私有變量name,但是在Person構造函數外部,沒有任何方法可以訪問name。由于這兩個方法是在函數內部定義的,因此作為閉包能夠通過作用域鏈訪問到name

看完上述內容,你們對javascript中閉包的應用場景有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

渭南市| 长沙县| 弋阳县| 贵港市| 辉县市| 瑞丽市| 东港市| 荥经县| 青铜峡市| 荆州市| 呼图壁县| 长岛县| 太康县| 成都市| 定安县| 鸡泽县| 彭阳县| 福贡县| 兴国县| 崇左市| 濮阳市| 左权县| 甘谷县| 临桂县| 襄城县| 嘉义市| 绥宁县| 浮梁县| 咸阳市| 钟祥市| 巨鹿县| 福建省| 北海市| 渭源县| 左权县| 汝南县| 高要市| 临夏市| 顺平县| 建宁县| 将乐县|