您好,登錄后才能下訂單哦!
** 閉包**:就是一個概念,出現在嵌套函數中,指的是內層函數引用到了外層函數的**自由變量**(未在本地作用域中定義的局部變量),就形成了閉包。
函數的局部作用域是不能夠保存信息的,即在函數內部聲明變量在函數調用結束之后函數里面保存的信息就被銷毀了,包括函數的參數。而這時使用閉包的話就能發揮作用:
**保存函數的狀態信息,使函數的局部變量信息依然可以保存下來**。形成閉包之后,閉包變量能夠隨著閉包函數的調用而實時更新,就好像是一個全局變量那樣。
我們發現每次再運行該函數,里面的count變量其實已然保存。如果你希望函數的每次執行結果,都是基于這個函數上次的運行結果。
通過以上簡單的代碼就很明了了閉包的好處之一。
另一個好處:閉包可以根據外部作用域的局部變量來得到不同的結果,這有點像一種類似配置功能的作用,我們可以修改外部的變量,閉包根據這個變量展現出不同的功能。這點在裝飾器中得到大量運用。
**多層裝飾器**的運行套用都是從下套上,一層套一層,具體看一下代碼就明曉。
兩層裝飾器能很好的完成注冊,方便構成架子寫進不同函數:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。