一文徹底理解JS回調(diào)函數(shù)
一、前奏
在談回調(diào)函數(shù)之前,先看下下面兩段代碼:
不妨猜測一下代碼的結(jié)果。
function say (value) { alert(value); } alert(say); alert(say('hi js.'));
如果你測試了,就會發(fā)現(xiàn):
只寫變量名 say 返回的將會是 say方法本身,以字符串的形式表現(xiàn)出來。
而在變量名后加()如say()返回的就會使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方法的方法名與下面的匿名函數(shù)可以認(rèn)為是一個東西 // 這樣再看上面兩段代碼是不是對函數(shù)可以作為參數(shù)傳遞就更加清晰了 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ù)同等級的參數(shù)進(jìn)行傳遞
- 回調(diào)函數(shù)的參數(shù)在調(diào)用回調(diào)函數(shù)內(nèi)部創(chuàng)建
四、寫在最后
回調(diào)函數(shù)應(yīng)用場景多用在使用 js 寫組件時,尤其是組件的事件很多都需要回調(diào)函數(shù)的支持。
關(guān)于回調(diào)函數(shù)還有什么問題可以在下面留言,一起交流。
到此這篇關(guān)于一文徹底理解JS回調(diào)函數(shù)的文章就介紹到這了,更多相關(guān)js回調(diào)函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名效果,文中的示例代碼簡潔易懂,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11

Bootstrap基本組件學(xué)習(xí)筆記之分頁(12)