首頁  >  文章  >  web前端  >  js回呼函數是什麼

js回呼函數是什麼

anonymity
anonymity原創
2019-05-29 09:32:1510906瀏覽

在Javascript中,函數是第一類對象,這表示函數可以像物件一樣按照第一類管理被使用。既然函數其實是物件:它們能被「儲存」在變數中,能作為函數參數被傳遞,能在函數中被創建,能從函數中傳回。

js回呼函數是什麼

因為函數是第一類對象,我們可以在Javascript使用回呼函數。在下面的文章中,我們將學到關於回調函數的方方面面。回呼函數可能是在Javascript中使用最多的函數式程式設計技巧,雖然在字面上看起來它們一直一小段Javascript或jQuery程式碼,但是對於許多開發者來說它任然是一個謎。閱讀本文之後你能了解如何使用回調函數。

回呼函數是從一個叫函數式程式設計的程式設計範式衍生出來的概念。簡單來說,函數式程式設計就是使用函數作為變數。函數式程式設計過去 - 甚至是現在,依舊沒有被廣泛使用 - 它過去常被看做是那些受過特許訓練的,大師級別的程式設計師的秘傳技巧。

幸運的是,函數是程式設計的技巧現在已經被充分闡明因此像我和你這樣的普通人也能去輕鬆使用它。函數式程式設計中的一個主要技巧就是回呼函數。在後面內容你會發現實作回呼函數其實就跟普通函數傳參一樣簡單。這個技巧是如此的簡單以致於我常常感到很奇怪為什麼它經常被包含在講述Javascript高級技巧的章節中。

解釋下什麼是回呼或高階函數

一個回呼函數,也稱為高階函數,是一個被當作參數傳遞給另一個函數(這裡我們把另一個函數叫做「otherFunction」)的函數,回呼函數在otherFunction中被呼叫。一個回呼函數本質上是一種程式模式(為常見問題所建立的解決方案),因此,使用回呼函數也稱為回呼模式。

下面是一個在jQuery中使用回呼函數簡單普遍的例子:

/注意到click方法中是一个函数而不是一个变量
//它就是回调函数
$("#btn_1").click(function() {
  alert("Btn 1 Clicked");
});

#正如你在前面的例子中看到的,我們將一個函數作為參數傳遞給了click方法。 click方法會呼叫(或執行)我們傳遞給它的函數。這是Javascript中回呼函數的典型用法,它在jQuery中廣泛被使用。

下面是另一個Javascript中典型的回呼函數的例子:

var friends = ["Mike", "Stacy", "Andy", "Rick"];
friends.forEach(function (eachName, index){
console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick
});

再一次,注意到我們講一個匿名函數(沒有名字的函數)作為參數傳遞給了forEach方法。

到目前為止,我們將匿名函數作為參數傳遞給了另一個函數或方法。在我們看更多的實際範例和寫我們自己的回呼函數之前,先來理解回呼函數是如何運作的。

以上是js回呼函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn