中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

象山县| 枝江市| 徐汇区| 调兵山市| 霍邱县| 白银市| 宜春市| 太湖县| 徐汇区| 长阳| 垫江县| 镇赉县| 靖江市| 同江市| 措美县| 开鲁县| 武隆县| 关岭| 平度市| 韩城市| 凌源市| 宁乡县| 封开县| 佛坪县| 临夏县| 探索| 文安县| 和顺县| 五寨县| 大理市| 星座| 永善县| 大新县| 沾化县| 宿松县| 大洼县| 双江| 会泽县| 永修县| 丰县| 高台县|