關于"閉包"這個概念的文章在網上鋪天蓋地,基本已經稀爛了,但是有時候總感覺讀了這么多的文章還是云山霧罩,當然是由于它本身就比較難于理解和涉及的知識較多,還有一個很重要的原因就是網上很多教程介紹可能存在一定的誤區,或者說側重點不同,下面就通過代碼實例簡單的介紹一下什么是閉包。
代碼實例一:
function a(){ var webName="武林網"; console.log(webName); } a()
以上是一段非常簡單的代碼,當函數執行結束之后,它就會從內存中釋放,里面的聲明的局部變量也將在內存中被釋放,自然就無法被訪問,在網上很多例子中,大多涉及到了作用域問題,其實一旦涉及作用域問題就和“閉包”概念就離題了,盡管作用域和"閉包"存在一定的關系。
再來看一段代碼:
function a(){ var webName="武林網"; function show() { console.log(webName); } return show; } var func = a(); func();
以上代碼就形成了一個典型的閉包,函數a()執行之后,在它內部聲明的變量webName依然可以使用。
說了這么多,閉包到底是什么,下面做一下總結:
閉包是一個概念,它描述了函數執行完畢內存釋放后,依然內存駐留的一個現象,只要把握這個核心概念,閉包就不難理解了。
以上這篇javascript閉包概念簡單解析(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答