您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關javascript中閉包的作用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
閉包定義
閉包包含自由(未綁定到特定對象)變量;這些變量不是在這個代碼塊內或者任何全局上下文中定義的,而是在定義代碼塊的環境中定義(局部變量)。"閉包" 一詞來源于以下兩者的結合:要執行的代碼塊(由于自由變量被包含在代碼塊中,這些自由變量以及它們引用的對象沒有被釋放)和為自由變量提供綁定的計算環境(作用域)。在PHP、Scala、Scheme、Common Lisp、Smalltalk、Groovy、JavaScript、Ruby、 Python、Go、Lua、objective c、swift 以及Java(Java8及以上)等語言中都能找到對閉包不同程度的支持。
閉包作用
JS 閉包的作用就是在A執行完并返回后,使得Javascript的垃圾回收機制不會收回A所占用的資源,因為A的內部函數B的執行需要依賴A中的變量,如果不使用閉包,B函數執行所依賴的變量會造成全局污染
閉包示例
模擬私有變量:
function Counter(start){ var count = start; return{ increment:function(){ count++; }, get:function(){ return count; } } } var foo = Counter(4); foo.increment(); foo.get();// 5
這里,Counter 函數返回兩個閉包,函數 increment 和函數 get。 這兩個函數都維持著對外部作用域 Counter 的引用,因此總可以訪問此作用域內定義的變量count。
看完上述內容,你們對javascript中閉包的作用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。