JavaScript回調(diào)(callback)函數(shù)概念自我理解及示例
更新時間:2013年07月04日 15:37:38 作者:
此文適合JavaScript入門級選手閱讀,在JavaScript里什么叫Callback“回調(diào)函數(shù)”,把方法b當做一個參數(shù)傳遞個方法a,當方法a執(zhí)行完后執(zhí)行另外一個指定函數(shù)(這里是b函數(shù)),感興趣的朋友可以了解下哈
此文適合JavaScript入門級選手閱讀,高手就可以飄過了。
先扯點閑話。在中國,有這么一種現(xiàn)象:不管什么詞或者概念,總會有些人把這些東西解釋的神乎其神,貌似搞得別人聽不懂就覺得自己很厲害的樣子。其實不知道有多2。我個人比較崇尚簡潔明了。什么詞,什么概念,如果你能用簡短的一兩句話讓大家聽明白,這才是本事。好了,閑話不扯了,進入正題。
在JavaScript里什么叫Callback“回調(diào)函數(shù)”,用我的話來講就是把方法b當做一個參數(shù)傳遞個方法a,當方法a執(zhí)行完后執(zhí)行另外一個指定函數(shù)(這里是b函數(shù))。來看個列子:
<html>
<head>
<title>Callback function test</title>
<script language="javascript" type="text/javascript">
function main(callback)
{
alert("I am main function");
alert("Invoke callback function..");
callback();
}
function b(){
alert("I am callback function: b");
}
function c(){
alert("I am callback function: c");
}
function test() {
main(b);
main(c);
}
</script>
</head>
<body>
<button onClick="test()">click me</button>
</body>
</html>
這里面main(b),那么b就稱作回調(diào)函數(shù),是不是很好理解?那有人會說我為什么不可以把b的調(diào)用放到main函數(shù)里呢?確實可以,但是那樣你的main方法就只能調(diào)用b了。這里我們將b傳遞個main,或者a傳遞個main,那main里面的callback方法就是動態(tài)的回調(diào)函數(shù)。優(yōu)點就在這里。
先扯點閑話。在中國,有這么一種現(xiàn)象:不管什么詞或者概念,總會有些人把這些東西解釋的神乎其神,貌似搞得別人聽不懂就覺得自己很厲害的樣子。其實不知道有多2。我個人比較崇尚簡潔明了。什么詞,什么概念,如果你能用簡短的一兩句話讓大家聽明白,這才是本事。好了,閑話不扯了,進入正題。
在JavaScript里什么叫Callback“回調(diào)函數(shù)”,用我的話來講就是把方法b當做一個參數(shù)傳遞個方法a,當方法a執(zhí)行完后執(zhí)行另外一個指定函數(shù)(這里是b函數(shù))。來看個列子:
復制代碼 代碼如下:
<html>
<head>
<title>Callback function test</title>
<script language="javascript" type="text/javascript">
function main(callback)
{
alert("I am main function");
alert("Invoke callback function..");
callback();
}
function b(){
alert("I am callback function: b");
}
function c(){
alert("I am callback function: c");
}
function test() {
main(b);
main(c);
}
</script>
</head>
<body>
<button onClick="test()">click me</button>
</body>
</html>
這里面main(b),那么b就稱作回調(diào)函數(shù),是不是很好理解?那有人會說我為什么不可以把b的調(diào)用放到main函數(shù)里呢?確實可以,但是那樣你的main方法就只能調(diào)用b了。這里我們將b傳遞個main,或者a傳遞個main,那main里面的callback方法就是動態(tài)的回調(diào)函數(shù)。優(yōu)點就在這里。
相關文章
js合并數(shù)組對象代碼實現(xiàn)(將數(shù)組中具有相同屬性對象合并到一起組成一個新數(shù)組)
項目過程中經(jīng)常會遇到JS數(shù)組合并的情況,時常為這個糾結,這篇文章主要給大家介紹了關于js合并數(shù)組對象(將數(shù)組中具有相同屬性對象合并到一起組成一個新數(shù)組)的相關資料,需要的朋友可以參考下2024-01-01JavaScript懶加載與預加載原理與實現(xiàn)詳解
這篇文章主要介紹了JavaScript懶加載與預加載,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-09-09