Javascript中自執行的匿名函數

          最近開發的系統用到很多的JS,而頁面的邏輯大多也用JS進行處理,自己也一直在學習這方面的內容。今天分享一下最近學習到的自執行匿名函數,首先什么是自執行的匿名函數呢? 它是指形如這樣的函數: (function {// code})();這樣的代碼見得多,但是為什么會自執行卻從來沒有想過。我就對代碼進行一點點修改:function {// code}();運行報錯,那為什么(function {// code})();可以被執行, 而function {// code}();卻會報錯?

          代碼運行原理分析

          • 首先, 要清楚兩者的區別:
            (function {// code})是表達式, function {// code}是函數聲明.
          • 其次, js”預編譯”的特點:
            js在"預編譯"階段, 會解釋函數聲明, 但卻會忽略表式.
          • 當js執行到function() {//code}();時, 由于function() {//code}在”預編譯”階段已經被解釋過, js會跳過function(){//code}, 試圖去執行();, 故會報錯;
            當js執行到(function {// code})();時, 由于(function {// code})是表達式, js會去對它求解得到返回值, 由于返回值是一 個函數, 故而遇到();時, 便會被執行.

          本博客所有文章如無特別注明均為原創

          如果覺得對你有幫助,可以通過下方打賞對作者表示鼓勵

          本文采用知識共享署名-非商業性使用-相同方式共享

          如若轉載,請注明出處:《Javascript中自執行的匿名函數》http://www.solariosolutions.com/1057.html

          (0)
          打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
          鋒哥的頭像鋒哥管理員
          上一篇 2014年11月14日 11:43
          下一篇 2015年8月15日 17:04

          相關推薦

          發表回復

          登錄后才能評論
          国产厨房乱子伦露脸,XXXXAAA欧美,日本 888 XXXX,国产欧美日韩一区二区图片