国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

原型模式故事鏈(5)--JS變量作用域、作用域鏈、閉包

Drinkey / 935人閱讀

摘要:上一章執行上下文變量提升函數聲明傳送門本次我們主要講講變量作用域和閉包變量作用域顧名思義變量起作用的范圍。則是局部變量,只能在函數中使用。閉包則能長久保存變量,又不會污染。舉例子定義外層函數,封裝被保護的局部變量。

上一章 JS執行上下文、變量提升、函數聲明 傳送門:https://segmentfault.com/a/11...

本次我們主要講講變量作用域和閉包
變量作用域:
顧名思義:變量起作用的范圍。
變量分為全局變量和局部變量。
全局變量:在任何地方都能用,在所有函數之外。
局部變量:只能在定義它的函數中,以及它的子函數中使用。

當前作用域沒有定義的變量,稱為自由變量。

舉例子:




    dsfg




在上述例子中,g是全局變量,不存在于任何函數中,能在任何地方使用。
p則是局部變量,只能在fn函數中使用。在外部使用則會報錯。

作用域鏈:
函數的變量在尋找作用域時,不看在哪執行,只看在哪定義。

舉例子:




    dsfg




以變量a來解析,上述例子中體現的作用域鏈。當執行console.log(a)時,先在fn2中尋找變量a,找不到則去到fn2的父級fn1中尋找,也找不到。再到fn1的父級中尋找,也就是全局變量中尋找,終于找到了。像這樣一層一層向上查找,就叫變量作用域鏈。
如果在其中任何一層找到了,則不會繼續向上查找。

閉包:
下個定義:可以訪問另一個函數作用域變量的函數。所以閉包其實是個函數。

為什么要用閉包呢?
局部變量無法共享和長久的保存,全局變量則很容易造成變量污染。閉包則能長久保存變量,又不會污染。
閉包特點:占用更多內存,不容易被釋放。
閉包使用場景:1.函數作為返回值(retrun 一個函數)

         2.函數作為參數傳遞到另一個函數中。

舉例子:




    lalala




1.定義外層函數,封裝被保護的局部變量。
2.定義內層函數,執行對外部函數的變量操作。
3.外層函數返回內層函數的對象,且外層函數被調用時,結果保存在一個全局變量中。

執行f1()時,a在當前函數中未定義,往父級查找fn中a=100,所以a=100;
函數變量作用域不看在哪執行,只看在哪定義

好啦好啦,jS三座大山翻過兩座了,還剩一個異步,單線程~

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/114113.html

相關文章

  • 原型模式故事(5)--JS變量作用作用閉包

    摘要:上一章執行上下文變量提升函數聲明傳送門本次我們主要講講變量作用域和閉包變量作用域顧名思義變量起作用的范圍。則是局部變量,只能在函數中使用。閉包則能長久保存變量,又不會污染。舉例子定義外層函數,封裝被保護的局部變量。 上一章 JS執行上下文、變量提升、函數聲明 傳送門:https://segmentfault.com/a/11... 本次我們主要講講變量作用域和閉包變量作用域:顧名思義:...

    codecraft 評論0 收藏0
  • 原型模式故事(5)--JS變量作用作用閉包

    摘要:上一章執行上下文變量提升函數聲明傳送門本次我們主要講講變量作用域和閉包變量作用域顧名思義變量起作用的范圍。則是局部變量,只能在函數中使用。閉包則能長久保存變量,又不會污染。舉例子定義外層函數,封裝被保護的局部變量。 上一章 JS執行上下文、變量提升、函數聲明 傳送門:https://segmentfault.com/a/11... 本次我們主要講講變量作用域和閉包變量作用域:顧名思義:...

    Apollo 評論0 收藏0
  • 原型模式故事(4)--JS執行上下文、變量提升、函數聲明

    摘要:代碼在執行之前會先全局中變量提升函數聲明。函數的執行上下文,也就是在這個函數范圍內找到函數執行上下文中函數范圍內,所有用聲明的變量。函數執行時,按照執行位置查找變量作用域只會向上查找。下一回變量作用域與閉包 上一章:JS的數據類型 傳送門:https://segmentfault.com/a/11... 好!話不多少,我們就開始吧。對變量提升和函數聲明的理解,能讓你更清楚容易的理解,...

    melody_lql 評論0 收藏0
  • 原型模式故事(4)--JS執行上下文、變量提升、函數聲明

    摘要:代碼在執行之前會先全局中變量提升函數聲明。函數的執行上下文,也就是在這個函數范圍內找到函數執行上下文中函數范圍內,所有用聲明的變量。函數執行時,按照執行位置查找變量作用域只會向上查找。下一回變量作用域與閉包 上一章:JS的數據類型 傳送門:https://segmentfault.com/a/11... 好!話不多少,我們就開始吧。對變量提升和函數聲明的理解,能讓你更清楚容易的理解,...

    zhigoo 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<