JS回呼函數全解析教程

來源:互聯網
上載者:User

標籤:text   http   cti   head   參數   color   after   好處   argument   

轉自:http://blog.csdn.net/lulei9876/article/details/8494337

自學jQuery的時候,看到一英文詞(Callback),頓時背部隱隱冒冷汗。迅速google之,發現原來中文翻譯成回調。也就是回呼函數了。不懂啊,於是在google回呼函數,發現網上的中文解釋實在是太“深奧”了,我承認自己才疏學淺了。看了幾個回調的例子後,貌似有點理解了。下面是我對回呼函數的理解,要是理解錯了,請指正,不甚感激。

        首先還是從jquery網站上的英文定義入手,身為國人,我真感到悲劇。一個回調的定義被國內的“高手”解釋成什麼樣,就在那繞圈子,貌似只有把你繞進去了,他才算高手。浮雲,一切都是浮雲。

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

這是js裡的解釋了,其他語言的算我沒說。

字面上理解下來就是,回調就是一個函數的調用過程。那麼就從理解這個調用過程開始吧。函數a有一個參數,這個參數是個函數b,當函數a執行完以後執行函數b。那麼這個過程就叫回調。

其實中文也很好理解:回調,回調,就是回頭調用的意思。函數a的事先幹完,回頭再調用函數b。

舉個現實的例子:約會結束後你送你女朋友回家,離別時,你肯定會說:“到家了給我發條資訊,我很擔心你。”對不,然後你女朋友回家以後還真給你發了條資訊。小夥子,你有戲了。

其實這就是一個回調的過程。你留了個函數b(要求女朋友給你發條資訊)給你女朋友,然後你女朋友回家,回家的動作是函數a。她必須先回到家以後,函數a的內容執行完了,再執行函數b,然後你就收到一條資訊了。

這裡必須清楚一點:函數b是你以參數形式傳給函數a的,那麼函數b就叫回呼函數。

 也許有人有疑問了:一定要以參數形式傳過去嗎,我不可以直接在函數a裡面調用函數b嗎?確實可以。求解中。

<解惑:如果你直接在函數a裡調用的話,那麼這個回呼函數就被限制死了。但是使用函數做參數就有下面的好處:當你a(b)的時候函數b就成了回呼函數,而你還可以a(c)這個時候,函數c就成了回呼函數。如果你寫成了function a(){...;b();}就失去了變數的靈活性。>

下面用代碼來證實我的理解。

<html>              <head>              <title>回呼函數(callback)</title>       <script language="javascript" type="text/javascript">       function a(callback)       {             alert("我是parent函數a!");           alert("調用回呼函數");           callback();       }       function b(){       alert("我是回呼函數b");             }       function c(){       alert("我是回呼函數c");             }             function test()       {           a(b);          a(c);       }             </script>       </head>              <body>       <h1>學習js回呼函數</h1>       <button onClick=test()>click me</button>       <p>應該能看到調用了兩個回呼函數</p>       </body>              </html>

 

JS回呼函數全解析教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.