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

溫馨提示×

溫馨提示×

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

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

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

香格里拉县| 长泰县| 和林格尔县| 邵东县| 开远市| 凤台县| 萨迦县| 交城县| 灌南县| 登封市| 宜宾市| 西昌市| 巴塘县| 宜良县| 盈江县| 长宁县| 登封市| 嘉兴市| 鸡泽县| 兴化市| 宕昌县| 昆明市| 淅川县| 廊坊市| 姚安县| 洞头县| 钦州市| 奉化市| 凭祥市| 那曲县| 阿鲁科尔沁旗| 忻州市| 竹山县| 城市| 湘潭市| 嘉黎县| 叶城县| 翼城县| 东丽区| 霍州市| 且末县|