關於"閉包"這個概念的文章在網上鋪天蓋地,基本已經稀爛了,但是有時候總感覺讀了這麼多的文章還是雲山霧罩,當然是由於它本身就比較難於理解和涉及的知識較多,還有一個很重要的原因就是網上很多教程介紹可能存在一定的誤區,或者說側重點不同,下面就通過代碼實例簡單的介紹一下什麼是閉包。
代碼實例一:
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閉包概念簡單解析(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。