js 回調函數


一、前奏

在談回調函數之前,先看下下面兩段代碼:
不妨猜測一下代碼的結果。

function say (value) {
alert(value);
}
alert(say);
alert(say('hi js.'));12345

如果你測試了,就會發現:

 

只寫變量名 say 返回的將會是 say方法本身,以字符串的形式表現出來。
而在變量名后加()如say()返回的就會使say方法調用后的結果,這里是彈出value的值。12

 

二、js中函數可以作為參數傳遞

再看下面的兩段代碼:

function say (value) {
alert(value);
}
function execute (someFunction, value) {
someFunction(value);
}
execute(say, 'hi js.');1234567

function execute (someFunction, value) {
someFunction(value);
}
execute(function(value){alert(value);}, 'hi js.');1234

上面第一段代碼是將say方法作為參數傳遞給execute方法
第二段代碼則是直接將匿名函數作為參數傳遞給execute方法

實際上:

 

function say (value) {
alert(value);
}
// 注意看下面,直接寫say方法的方法名與下面的匿名函數可以認為是一個東西
// 這樣再看上面兩段代碼是不是對函數可以作為參數傳遞就更加清晰了
say;

function (value) {
alert(value);
}12345678910

這里的say或者匿名函數就被稱為回調函數。

 

三、回調函數易混淆點——傳參

如果回調函數需要傳參,如何做到,這里介紹兩種解決方案。

  • 將回調函數的參數作為與回調函數同等級的參數進行傳遞

  • 回調函數的參數在調用回調函數內部創建



作者:dkvirus
來源:CSDN
原文:https://blog.csdn.net/baidu_32262373/article/details/54969696?utm_source=copy
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM