您好,登錄后才能下訂單哦!
正如標題所述,JavaScript閉包對我來說一直有點神秘,看過很多閉包的文章,在工作使用過閉包,有時甚至在項目中使用閉包,但我確實是這是在使用閉包的知識。
最近看到的一些文章,終于,有人用于一種讓我明白方式對閉包進行了解釋,我將在本文中嘗試使用這種方法來解釋閉包。
準備
在理解閉包之前,有個重要的概念需要先了解一下,就是 js 執行上下文。
這篇文章是執行上下文 很不錯的入門教程,文章中提到:
當代碼在JavaScript中運行時,執行代碼的環境非常重要,并將概括為以下幾點:
全局作用域——第一次執行代碼的默認環境。
函數作用域——當執行流進入函數體時。
(…) —— 我們當作 執行上下文 是當前代碼執行的一個環境與作用域。
換句話說,當我們啟動程序時,我們從全局執行上下文中開始。一些變量是在全局執行上下文中聲明的。我們稱之為全局變量。當程序調用一個函數時,會發生什么?
以下幾個步驟:
JavaScript創建一個新的執行上下文,我們叫作本地執行上下文。
這個本地執行上下文將有它自己的一組變量,這些變量將是這個執行上下文的本地變量。
新的執行上下文被推到到執行堆棧中。可以將執行堆棧看作是一種保存程序在其執行中的位置的容器。
函數什么時候結束?當它遇到一個return語句或一個結束括號}。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。