一、前奏
在談回調(diào)函數(shù)之前,先看下下面兩段代碼:
不妨猜測(cè)一下代碼的結(jié)果。
function say (value) alert(say); alert(say('hi js.'));
如果你測(cè)試了,就會(huì)發(fā)現(xiàn):
只寫變量名 say 返回的將會(huì)是 say方法本身,以字符串的形式表現(xiàn)出來(lái)。
而在變量名后加()如say()返回的就會(huì)使say方法調(diào)用后的結(jié)果,這里是彈出value的值。
二、js中函數(shù)可以作為參數(shù)傳遞
再看下面的兩段代碼:
function say (value) { alert(value);
} function execute (someFunction, value) { someFunction(value);
}
execute(say, 'hi js.');
與
function execute (someFunction, value) { someFunction(value);
}
execute(function(value){alert(value);}, 'hi js.');
上面第一段代碼是將say方法作為參數(shù)傳遞給execute方法
第二段代碼則是直接將匿名函數(shù)作為參數(shù)傳遞給execute方法
實(shí)際上:
function say (value) { alert(value);
} say; function (value) { alert(value);
}
這里的say或者匿名函數(shù)就被稱為回調(diào)函數(shù)。
三、回調(diào)函數(shù)易混淆點(diǎn)——傳參
如果回調(diào)函數(shù)需要傳參,如何做到,這里介紹兩種解決方案。
-
將回調(diào)函數(shù)的參數(shù)作為與回調(diào)函數(shù)同等級(jí)的參數(shù)進(jìn)行傳遞
-
回調(diào)函數(shù)的參數(shù)在調(diào)用回調(diào)函數(shù)內(nèi)部創(chuàng)建
四、寫在最后
回調(diào)函數(shù)應(yīng)用場(chǎng)景多用在使用 js 寫組件時(shí),尤其是組件的事件很多都需要回調(diào)函數(shù)的支持。
轉(zhuǎn)自:csdn 作者:dkvirus
藍(lán)藍(lán)設(shè)計(jì)( www.wnxcall.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)